C语言中, 有符号整型和有符号短整型的值域都是 -32768 ~ +32767 (无符号整型与短整型均为 0 ~ 65535),他们之间有什么区别呢?

这主要是根据机器的位数决定的 在16位机上,并没有什么差别,但是在比16位机高的机器上,短整型始终定义为16位。而这时整型为32位,长整型也为32位

1、 整型

Long long long int short 整数范围(十进制)

16位机 64 32 16 16 -32768~32767

32位机 64 32 32 16 -2147483648~2147483646

64位机 64 32 32 16 -9223372036854775808~..

2、整型输出

%d int型

%u 无符号int

%ld long型

%lu 无符号long

%hd short型

%lld long long型(某些编译器不支持)

3、数制输出 例:36

10进制: %d : 36 %d :36

8进制: %o : 44 %#o :044

16进制: %x : 24 %#x :0x24

有关整型的一些常识: a. c/c++对整型长度的规定是为了执行效率,将int定义为机器字长可以取得最大的执行速度; b. c/c++中整型包括:int, char 和 enum, c++中还包含bool类型,c99中bool是一个宏,实际为_bool; c. c 和 c++ 对 enum 的规定有所不同,这里不描述; d. 修饰整型正负的有 signed 和 unsigned,对于 int 默认为 signed; e. 修饰 int 大小的有 short 和 long, 部分编译器还扩展了一些更长的整型,比如 long long 和 __int64, c99中增加了long long和unsigned long long; f. int 的长度 与 机器字长相同, 16位的编译器上int长16位,32位的编译器上int长32位; g. short int 的长度 小于等于 int 的长度,注意她们可能长度相等,这取决于编译器; h. long int 的长度 大于等于 int 的长度,注意她们可能长度相等,这取决于编译器; i. char 的长度应当可以包容得下一个字符,大部分系统中就是一个字节,而有的系统中可能是4个字节,因为这些系统中一个字符需要四个字节来描述; j. char 的正负取决于编译器,而编译器的决定取决于操作系统,在不同的编译器中char可能等同于signed char,也可能等同于unsigned char; 总结: a. 出于效率考虑,应该尽量使用int和unsigned int; b. 当需要指定容量的整型时,不应该直接使用short、int、long等,因为在不同的编译器上她们的容量不相同。此时应该定义她们相应的宏或类型,比如在vc++6.0中,可以如下定义: typedef unsigned char ubyte; typedef signed char sbyte; typedef unsigned short int uword; typedef signed short int sword; typedef unsigned int udword; typedef signed int sdword; typedef unsigned __int64 uqword; typedef signed __int64 sqword; 然后在代码中使用 ubyte、sbyte、uword 等,这样当代码移植的时候只需要修改相应的类型即可。 定义自己的类型虽然在代码移植的时候只需要修改一处即可,但仍然属于源代码级别的修改,所以 c++ 2.0 中将这些类型定义在模板中,可以做到代码移植时无需修改代码。 c. 在定义char时,一定要加上 signed 或 unsigned,因为她的正负在不同的编译器上并不相同。 d. 不要想当然的以为char是1字节长,因为她的长度在不同的编译器上并不相同。

c语言长 短整型有无符号,整型和短整型,有符号和无符号相关推荐

  1. c语言fgetc()函数(从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动)

    C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 描述 C 库函数 int fgetc(FILE *stream) 从指定的流 stream 获取下一个字符(一 ...

  2. 无符号右移负数_关于负数的右移与无符号右移运算小结

    对于带符号右移,若为负数,则在存储时首位表示符号位,其值为1,表示该值是负数的移位,在移位过程中,高位补1,若符号位是0,表示是正数,在移位过程中高位补零,两者的前提是符号位保持不变: 对于负数的右移 ...

  3. python k线顶分型_顶分型和底分型的确认及K线包含处理

    在上文中,对于分型做了初步的讲解,针对创分型进一步的划分,可以得到顶分型和底分型两种.那么顶分型和底分型如何确认?今天就跟随小编来了解顶分型和底分型的确认以及K线包含处理. 第一:顶分型和底分型的确认 ...

  4. c++基本数据类型基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:

    基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:单精度型:float 双精度型:double 长 ...

  5. C语言--无符号整型

    今天在做一道题的时候,出现了无符号整型的概念,,之前由于没遇到,所以没有彻底理解无符号整形的意思,百度了很多都只讲了无符号整型和有符号整型的区别,没有怎么讲到无符号是怎么计算的,今天就来讲讲无符号整形 ...

  6. 【c语言学习课堂笔记第三天】:int函数有符号整型和无符号整型

    int 函数 有符号整型: 概念:截图 sizeof函数可查看字节数量 声明变量技巧: 随堂笔记: #include <stdio.h> #include <stdlib.h> ...

  7. C语言基础09——数据在内存中的存储。整型的存储、大小端讲解、浮点数的存储、杨辉三角、找凶手、猜名次

    目录 数据类型 基本内置类型 类型的基本分类 整型在内存中的存储 计算机中整数的三种表示方法:原码.反码.补码 大小端 练习 浮点型在内存中的存储 为什么以下程序输出结果与想象不同? 浮点数存储规则 ...

  8. java int转无符号_Java中int或long等整型数值如何转换为无符号整数

    Java8 为 Integer.Long包装类增加了如下方法: static  String  toUnsignedString(int/long i):将指定int或long型整数转换为无符号整数对 ...

  9. c语言中的无符号字符指什么,深入分析C语言中的有符号和无符号

    有符号和无符号指的是数字那么有符号和无符号的区别是什么,我们这里一起来看在C语言中的有符号和无符号分析吧,希望这篇文章能够对各位有用. 就像我们必须决定某个量使用整数还是实数,使用多大的范围数一样,我 ...

  10. c语言深度剖析(2)—有符号与无符号

    1. 数据类型 1.1 计算机中的符号位  有符号编码规则:数据的最高位用于标识数据的符号 最高位为1,表示这个数为负数 最高位为0,表示这个数为正数 无符号编码规则:数据的最高位不代表符号位 计算机 ...

最新文章

  1. 跳出数据计算拯救人工智能之打败机器学习方法
  2. python经典练习题
  3. vue 中使用promise
  4. linux Figlet 转换字符字
  5. TCP/IP详解--TIME_WAIT状态存在的原因
  6. GoogLeNet系列解读
  7. C#抓取网页HTML内容
  8. 戴尔新版bios设置中文_戴尔电脑装机过程
  9. linux驱动开发音频设备驱动,linux驱动开发—基于Device tree机制的驱动编写
  10. jquery的懒加载记录一下踩得坑
  11. java 分布式编译_linux分布式编译distcc和ccache的部署
  12. [lct] Luogu P4219 大融合
  13. vim默认设置的配置
  14. linux 查看数据库和表
  15. Teechart图表应用技术详解—第四章之工具组件概述
  16. web项目406错误的解决
  17. Thinking in Java---如何正确的终止子线程
  18. CDH安装时报错:/opt/cloudera/parcels/.flood/.../CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel does not exist
  19. 达梦使用powerdesigner生成er模型图
  20. C++ Primer Plus 编程练习3

热门文章

  1. 胡玉平 计算机科学,基于代价敏感混合分裂策略的多决策树算法
  2. 7-4 哈夫曼编码 (30分)
  3. SQL注入-waf绕过
  4. 关于 Unicode 每个程序员应该知道的 5 件事
  5. 如何识别一加6手机图片中的文字?
  6. 区块链打击食品欺诈:以挪威三文鱼为例
  7. 5A成绩通过PMP,备考经验总结——姜飞
  8. Word中如何修改脚注的编号方式
  9. See system logs and ‘systemctl status docker.service‘ for details
  10. 科研linux发型版本,[合集]哪些Linux系统科研能用呢 - 优秀的Free OS(Linux)版 - 北大未名BBS...