1. 程式人生 > >整數在記憶體中的儲存

整數在記憶體中的儲存

整形在記憶體中的儲存

如果想要知道整形在記憶體那就必須知道什麼是原碼、補碼、反碼。

計算機中的符號數有三種表示方式,即原碼、反碼和補碼。三種表示方式均有符號位和數值位兩部分,符號位都是用0表示“正”,用1表示“負”,而數值位三種方法各不相同。

原碼

直接將二進位制按照正負數形式翻譯成二進位制就可以。

反碼

將原碼的符號位不變,其他位按位取反就可以得到了。

補碼

反碼+1就得到補碼。

正數的原、反、補碼都相同。

對於整形來說:資料存放記憶體中其實存放的是補碼。

為什麼呢?
在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值統一處理。原因在於,使用補碼,可以將符號位和數值與統一處理;
同時,加法和減法也可以統一處理(cpu只有加法器)此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。

記憶體中的儲存

大端儲存模式,是指資料的低位儲存在記憶體中的高地址中,而資料的高位,儲存在記憶體的低地址中; 小段儲存模式,是指資料的低位儲存在記憶體中的低地址中,而資料的高位儲存在記憶體的高地址中。 如何判斷: #include<stdio.h>
int check_sys()
{
int i = 1;
return (*(char *)&i);
}
int main()
{
int ret = check_sys();
if(ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
system("pause");
return 0;
}