0x00 说明
测试环境:VS2015
Windows10
0x01 整数类型:
C++中整数数据类型有三种:int,long,short。在32位系统中,int类型和long类型在内存中都占4个字节,short在内存中占两个字节。
• 无符号整型(unsigned):
表示的范围0~2^32-1,即0~4294967295
• 有符号整型(signed):
可以表示正数和负数,负数在内存中都是以补码的形式存储,补码的规则是用0减去这个数的绝对值,为了计算简便,通常使用取反加1的方式求得补码。
最高位表示符号位,表示的范围0x80000000~0x7FFFFFFF即-2147483648~2147483647。
在数据分析时,如果将内存解释为有符号整数,则查看用十六进制数表示时的最高位,最高位小于8则为正数,大于8则为负数。如果为负数,则需转换成真值,从而得到对应的负整数值。
• 大端模式和小端模式:
大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。
小端模式:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。