[問題] 關於32bit記憶體的概念
#include<stdio.h>
#include<stdlib.h>
int main()
{int j=0;
int i=1;
do
{
printf("%d\n",i);
i*=2;
j++;
}while(j<33);
system("pause");
return 0;
}
最後印出來會是1,2,3,4.......1073741824,-2147483648, 0
^第31次 ^第32次
第31次~是不是代表著全部位元都是 11111111 11111111 11111111 11111111
那他計算負數的方式為何會將第32位元也算入絕對值,第32位元不是只做正負
號的判斷嗎?
那如果平常打-2位元組是否為10000000 00000000 00000000 00000001
還是要取補數甚麼的?
第32次 為什麼會顯示0 跟overflow有關係嗎 應該不會進入下一段的記憶體吧 XD
硬體概念不好還請高手開導T.....T
謝謝
--
這年頭沒真相沒得混 ORZ.....
http://ppt.cc/S!iF
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.251.233
推
07/20 15:57, , 1F
07/20 15:57, 1F
→
07/20 16:03, , 2F
07/20 16:03, 2F
→
07/20 16:04, , 3F
07/20 16:04, 3F
→
07/20 16:04, , 4F
07/20 16:04, 4F
推
07/20 16:20, , 5F
07/20 16:20, 5F
噓
07/20 17:33, , 6F
07/20 17:33, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章