C語言中整型變數的記憶體儲存形式

2021-08-14 20:59:09 字數 896 閱讀 1389

本文介紹c語言中整型變數在記憶體中的儲存形式。主要分析二進位制和十六進製制的形式。

示例**如下:

#include #include #include int main()

上述**的執行結果如下:

sizeof(a) is 4

sizeof(int) is 4

integer a = -7

binary a = 11111111111111111111111111111001

length of string_2 a is 32.

integer a = -7

hexadecimal a = fffffff9

length of string_16 a is 8.

從上述**及其執行結果能夠看出:

a)-7對應記憶體中的二進位制值為11111111111111111111111111111001;對應的十六進製制值為fffffff9,通過對二進位制值進行求補碼的操作:

1. 除符號位之外,進行取反操作:11111111111111111111111111110110;

2. 再加1操作:1111 1111 1111 1111 1111 1111 1111 0111,此值為原碼,對應的數值是-7。

通過上述運算,證明了-7在記憶體中是以二進位制補碼的形式進行儲存的。而十六進製制僅僅是對二進位制的補碼進行了整合,同樣是以補碼的形式進行儲存的。

b)-7的補碼 1111 1111 1111 1111 1111 1111 1111 1001 中,前面28位都是符號位,只有最後4位是數值位。在進行運算時,把符號位標出來有利於更清晰地進行運算和理解原碼與補碼的關係。

從記憶體理解c語言中變數的儲存型別

今晚看了一下linux程式設計,看到了程序管理這一塊,講解了c語言中的各種變數的儲存型別,而且是從程序 記憶體的角度講解的,以前從沒有這樣理解過,覺得挺有用的,在這裡記錄下來。首先要來理解一下可執行檔案載入進記憶體後形成的程序在記憶體中的結構,如下圖 區 存放cpu執行的機器指令,區是可共享,並且是...

C語言中變數儲存類別

c語言根據變數的生存週期來劃分,可以分為靜態儲存方式和動態儲存方式。靜態儲存方式 是指在程式執行期間分配固定的儲存空間的方式。靜態儲存區中存放了在整個程式執行過程中都存在的變數,如全域性變數。動態儲存方式 是指在程式執行期間根據需要進行動態的分配儲存空間的方式。動態儲存區中存放的變數是根據程式執行的...

C語言中資料的儲存記憶體

c中的資料在記憶體的儲存可以用儲存時期 作用域和鏈結來體現。儲存時期 儲存時期分為靜態的 自動的和分配的。靜態的變數一般用關鍵字static來標示 全域性變數不用static也是靜態的 它在程式開始執行的時候就為變數分配記憶體空間,在整個程式中一直存在。自動的用auto來標示 預設省略auto 變數...