計算機儲存知識
及堆疊
資料在記憶體中始終是以二進位制形式存放的。數值是以補碼表示的。
位(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這些資料是怎麼存在計算機當中的呢?不知道你們有沒有聽過乙個東西,叫...