計算機儲存及堆疊(相關資料來自百度,及其它)

2021-06-14 00:46:53 字數 1673 閱讀 1598

計算機儲存知識

及堆疊

資料在記憶體中始終是以二進位制形式存放的。數值是以補碼表示的。

位(bit):         

b  (二進位制數)

位元組(byte):  

b  (

1個位元組等於

8位二進位制)

乙個英文本母(

不分大小寫

)佔乙個位元組的空間,乙個中文漢字佔兩個位元組的空間,英文標點佔乙個位元組,中文標點佔兩個位元組.

字元:        

字元是指我們能夠看到的各種文字。

字長:計算機一次能處理的二進位制位數,通常是位元組的整數倍。字長是由cpu

本身的硬體結構所決定的。

常用字長:8

位、16

位、32

位、64位

ascii碼

-美國標準資訊交換碼

(二進位制

),基本

ascii用7

位二進位制數表示,占用乙個位元組,最高位為0。

如:英文本母『b』

的7位ascii

碼為100 0010

,儲存時為

0100 0010。

比較大小:數字<

大寫字母

<

小寫字母

資料在記憶體中是以補碼形式儲存的。乙個正整數的補碼與該數的原碼(即該數的二進位制形式)相同。如果數值是負的,在記憶體中如何用補碼形式表示呢?求負數的補碼的方法是:將該數的絕對值的二進位制形式,按位取反再加1

。我們來求

char

型資料-128

在記憶體中的二進位制形式:

1 取-128

的絕對值

1282 

128的絕對值的二進位制形式為

1000 0000

3 對上面的二進位制形式取反得 0111 1111

4 再加1

得 1000 0000

其中最高位為符號位,為0

,表示數值為正,為

1,表示數值為負。

看看以下**: 5 

char a=128;  

6 printf("%x\n",a);    

它將輸出什麼呢?首先,a

是有符號型資料,它的最高位是符號位,低七位才是數值位。

a中的資料在記憶體中表示為

1000 0000

,但它的最高位並不是數值位而是符號位,所以它表示的是乙個負數,那它究竟表示的是哪乙個負數呢?答案是它剛好是

-128

的補碼形式。所以,它表示的是

-128

這個資料。我們知道,

%x是以十六進製制形式輸出整數,並且是將符號位一起作為

16進製制數的一部分輸出的。所以,當用它輸出

-128

時,它輸出的是

32位的

-128

,而不是8位的

-128

,所以輸出的是

ffff ff80

,而不是80。

計算機網路相關資料

tcp ip詳解卷一 tcp ip詳解卷二 tcp ip協議族 wireshark 資料報分析實戰 tcp ip協議原理與應用 深入理解linux網路技術內幕 linux網路程式設計 乙個作業系統的實現 unix 網路程式設計 tcpdump pcapr社群,可以分享pcap檔案 domain do...

計算機中資料的儲存形式

在計算機中如何表示?8在計算機中表示為二進位制的1000,那麼 8怎麼表示呢?很容易想到,可以將乙個二進位制位 bit 專門規定為符號位,它等於0時就表示正數,等於1時就表示負數。比如,在8位機中,規定每個位元組的最高位為符號位。那麼,8就是00001000,而 8則是10001000。但是,隨便找...

資料在計算機中的儲存

首先,我們為什麼要知道這個呢?我們只需要知道這個東西怎麼用不就好了嗎?我想,你可能忽視了你還是乙個程式設計師。好了言歸正傳我們來講講計算機中資料的儲存方式。我們都知道在計算機中所有的資料是以二進位制的形式儲存的,那麼你們有沒有想過01這些資料是怎麼存在計算機當中的呢?不知道你們有沒有聽過乙個東西,叫...