整形在内存中的存储
原码、反码、补码
原码
直接将二进制按照正负数的形式翻译成二进制。
反码
将原码的符号位不变,其他位依次按位取反。
补码
反码+1就得到补码
正数的原、反、补码都相同。
对于整形来说:数据存放内存中其实存放的是补码
大小端介绍
大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;
小端模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。
这是所用的编译器决定的。
大小端的设置是为了处理高于8字节的数据存储
以下是两种检测大小端的方式
int Test()
{
union MyUnion
{
int a;
char b;
}un;
un.a = 1;
return un.b;
}
int Test_1()
{
int i = 1;
return (*(char*)&i);
}
int main()
{
//int ret = Test();
int ret = Test_1();
if (ret == 1)
{
printf("小端");
}
else
{
printf("大端\n");
}
return 0;
}