C语言中有很多的内置数据类型,不同的数据类型在内存中的存储方式也是不一样的,同一类型在不同环境下的存储方式也是不一样的。
整型:
char-unsigned char -signed char
long-unisgned long (int) -signed long (int)
short-unsigned short (int)-signed (int)
int-unsigned int -signed int
除了char以外,其他整型类型默认为signed,如要使用unsigned类型,则声明。
char虽然是字符类型,但在内存中以ASCLL码值的形式存储,ASCLL为一个整数。
char默认值并不一定为unsigned或者signed,这取决于不同编译器的实现。
有正负的数据可以放在signed中,无符号的放在unsigned中(被默认看为正值)。
有符号的数据其二进制序列最高位为符号位:0-正,1-负。
而无符号的数据二进制最高位为数据位,这就扩大了该类型数据的存储大小范围。
整型在内存中的存储:
整型在内存中通常申请四个字节的空间来存储。
下面提出概念:原码,反码与补码
符号位:0-正数,1-负数。
原码:一个整型的值由十进制数转化为二进制得来的二进制序列。
注意:正数的原码反码补码相同。
反码:如果整型值为负,则按这个负数的原码中符号位不变其他位按位取