有符号整数 无符号整数
汉唐婚礼-部门工作总结开头
C语言中定义有符号整型:signed int x; 由于signed
可以省略,所以int x; 也是可以定义
有符号整型变量x
C语言中,有符号数与无符号
数主要是由于是高位是否代表符号(正、负数)来决定的。有
符号数是最高位(二进制位)代表符号,1
代表是负数,0代表是正数,不管是正数还是负
数都是以补码的形式存储与使用的。
(1)正数的补码:与原码相同。例如,+9的补码是00001001。
(2)负数的补
码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
例如,-7的补码:因为是负
数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值
+7的原码0000111
按位取反为1111000;再加1,所以-7的补码是11111001。
整型数据即整数。
整型数据的分类
整型数据的一般分类如下:
基本型:类型说明符为int,在内存中占2个字节。
短整型:类型说明符为short
int或short。所占字节和取值范围均与基本型相同。
长整型:类型说明符为long
int或long,在内存中占4个字节。
无符号型:类型说明符为unsigned。
无符号型又可与上述三种类型匹配而构成:
无符号基本型:类型说明符为unsigned int或unsigned。
无符号短整型:类型说明符为unsigned short。
无符号长整型:类型说明符为unsigned long。
下表列出了C语言中各类整型数据所分配的内存字节数及数的表示范围。
类型说明符 数的范围 字节数
int
unsigned int
short int
-32768~32767,即
-2
15
~(2
15
-1)
0~65535,即
0~(2
16
-1)
-32768~32767,即
-2
15
~(2
15
-1)
2
2
2
2 unsigned short int 0~65535,即
0~(2
16
-1)
long int
unsigned long
-2147483648~2147483647,即
-2
31
~(2
31
-1) 4
0~4294967295,即0~(2
32
-1) 4
整型数据在内存中的存放形式
如果定义了一个整型变量i:
inti;
i=10;
数值是以补码表示的:
正数的补码和原码相同;
负数的补码:将该数的绝对值的二进制形式按位取反再加1。
例如:求-10的补码:
由此可知,左面的第一位是表示符号的。
各种无符号整型数据所占的内存空间字节
数与相应的有符号类型量相同。但由于省去了符号
位,故不能表示负数。