负数的存储方式
文章目錄
- 1 負數的存儲方式
1 負數的存儲方式
代碼如下,輸出結果是多少?
int main(void) {char a[1000];for (int i = 0; i < 1000; i++){a[i] = -1 - i;}cout << strlen(a) << endl; // 255system("pause");return 0; }我們需要知道負數在內存中的表示方式:補碼表示法。
由于char最小表示的負數為-128,即0x80。當負數繼續變小,就會發生溢出。對于這個題目我們需要關注一點,當溢出后的結果恰好為0時,i的值是多少。由于8位已經溢出,所以我們用16位的數表示,即0xff00,這個數的真值是-256.此時i的值為255。由于strlen計算出的長度不包含最后的’\0’,所以最終的長度為255。
總結
- 上一篇: C语言中的关键字概览
- 下一篇: mhdd硬盘检测工具怎么用 使用mhdd