《深入理解計(jì)算機(jī)系統(tǒng)》第二章 信息的表示和處理

2.1信息存儲(chǔ)

機(jī)器程序?qū)?nèi)存視為一個(gè)很大的字節(jié)數(shù)組,稱為虛擬內(nèi)存肛炮。所有可能的地址集合稱為虛擬地址空間止吐,實(shí)際上宝踪,該功能的實(shí)現(xiàn)是將動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(DRAM)、閃存碍扔、磁盤存儲(chǔ)器瘩燥、特殊硬件和操作系統(tǒng)軟件結(jié)合起來(lái),使其看上去是一個(gè)統(tǒng)一的字節(jié)數(shù)組不同。

2.1.1十六進(jìn)制

十進(jìn)制轉(zhuǎn)十六進(jìn)制的方法:如果x是2的非負(fù)整數(shù)n次冪厉膀,那么把n表示成i+4j的形式,其中0<=i<=3,當(dāng)i=0時(shí)二拐,x的開頭寫成2^i.后面跟j個(gè)0服鹅。如果沒(méi)什么規(guī)律那就整除取余法

2.1.2字?jǐn)?shù)據(jù)大小

字長(zhǎng)指明了指針數(shù)據(jù)的標(biāo)稱大小,決定了虛擬地址空間的最大大小百新,如一個(gè)字長(zhǎng)為w的機(jī)器企软,虛擬地址的范圍就是0~2^w-1 .程序最多訪問(wèn)2^w個(gè)字節(jié).所以經(jīng)過(guò)計(jì)算,32位的操作系統(tǒng)的內(nèi)存利用的最多只是4G饭望。(這個(gè)問(wèn)題還需要進(jìn)一步的深究仗哨,還沒(méi)有理解透徹)

2.1.3尋址和字節(jié)順序

考慮一個(gè)w位的整數(shù),其位表示為[x(w-1),x(w-2),......x(1),x(0)],其中的x(w-1)是最高有效位杰妓,x(0)表示最低有效位藻治,將這些位轉(zhuǎn)成字節(jié),那么最低有效字節(jié)就是[x(7),x(6)......x(0)]巷挥。在內(nèi)存中桩卵,最低有效位在前的方式稱為小端法,最高有效位在前的方法稱為大端法倍宾。如某個(gè)int的值的十六進(jìn)制是0x01234567的兩種存儲(chǔ)方式如下


image.png

2.1.7位級(jí)運(yùn)算

| & ~ ^ :或雏节、與、非高职、異或

2.1.8邏輯運(yùn)算

2.1.9移位運(yùn)算

左移沒(méi)什么好說(shuō)的
右移運(yùn)算分為了邏輯右移和算術(shù)右移

  • 邏輯右移:在左端補(bǔ)0
  • 算術(shù)右移:在左端步最高有效位的值钩乍,在處理有符號(hào)整數(shù)的時(shí)候非常有用,一般默認(rèn)對(duì)有符號(hào)整數(shù)采用算數(shù)右移怔锌,而對(duì)于無(wú)符號(hào)數(shù)寥粹,必須是邏輯的
    相比于C,Java有著更加準(zhǔn)確的定義埃元,算數(shù)右移:>> 邏輯右移>>>
    移位的k一般是小于等于字長(zhǎng)的涝涤,如果大于了那一般是經(jīng)過(guò)mod字長(zhǎng)后進(jìn)行移位運(yùn)算

2.2整數(shù)表達(dá)

2.2.1整數(shù)數(shù)據(jù)類型

C語(yǔ)言支持多種整數(shù)數(shù)據(jù)類型,每種數(shù)據(jù)類型都用相應(yīng)的關(guān)鍵字來(lái)確定大小岛杀,而且不同的大小分配的字節(jié)數(shù)根據(jù)編譯為32位還是64未而有所不同阔拳,所以整理出下表,下表中的每種類型所表示的數(shù)據(jù)范圍都是計(jì)算而來(lái)的类嗤,而不是記憶的糊肠。


32位程序上C語(yǔ)言整型數(shù)據(jù)類型

64位程序上C語(yǔ)言整型數(shù)據(jù)類型

2.2.1無(wú)符號(hào)數(shù)的編碼

無(wú)符號(hào)數(shù)的編碼的定義(二進(jìn)制轉(zhuǎn)無(wú)符號(hào)數(shù))



無(wú)符號(hào)數(shù)的二進(jìn)制表示有一個(gè)很重要的屬性辨宠,就是每個(gè)介于0~2^w-1之間的數(shù)都有唯一一個(gè)w位的值編碼。雙射的數(shù)學(xué)屬于可以解釋該原理货裹。

2.2.3 補(bǔ)碼編碼

補(bǔ)碼編碼的定義



與我之前的理解有點(diǎn)出入嗤形,所以將示例放在了下面



下圖是一些經(jīng)常引用的特殊的值,以作記錄

關(guān)于以上的數(shù)字泪酱,有以下的注意點(diǎn)

  • 補(bǔ)碼范圍的不對(duì)稱
  • 最大的無(wú)符號(hào)數(shù)值正好比補(bǔ)碼的最大值的兩倍大一點(diǎn)

2.2.4有符號(hào)數(shù)和無(wú)符號(hào)數(shù)之間的轉(zhuǎn)換

對(duì)大多數(shù)C語(yǔ)言的實(shí)現(xiàn)派殷,規(guī)則一般是數(shù)值可能改變,但是位模式不變墓阀,
所以經(jīng)過(guò)2.1和2.3的轉(zhuǎn)換,補(bǔ)碼轉(zhuǎn)成無(wú)符號(hào)數(shù)的公式如下



經(jīng)過(guò)推導(dǎo)拓轻,無(wú)符號(hào)數(shù)轉(zhuǎn)補(bǔ)碼的公式如下


image.png

2.2.5C語(yǔ)言中有符號(hào)位和無(wú)符號(hào)位

一個(gè)有符號(hào)斯撮、一個(gè)無(wú)符號(hào),C語(yǔ)言會(huì)隱式地將有符號(hào)參數(shù)轉(zhuǎn)為無(wú)符號(hào)參數(shù)扶叉,所以在進(jìn)行某些大于或者小于判斷的時(shí)候勿锅,會(huì)有一些非直觀的現(xiàn)象產(chǎn)生。

2.2.6拓展數(shù)字的位表達(dá)

從一個(gè)較小的數(shù)據(jù)類型轉(zhuǎn)為一個(gè)較大的類型枣氧,理論上應(yīng)該保持兩者的相同溢十。所以出現(xiàn)了無(wú)符號(hào)數(shù)的零擴(kuò)展和補(bǔ)碼數(shù)的符號(hào)擴(kuò)展

2.2.7截?cái)鄶?shù)字

  • 截?cái)酂o(wú)符號(hào)數(shù)
    x截?cái)酁閗位的結(jié)果是xmod2^k。 該原理背后的直覺(jué)是所有被截去的位權(quán)重都是2^i,其中i>=k达吞,所以每一個(gè)權(quán)在取模之后都變成了零张弛,所以推到得到該結(jié)果
  • 截?cái)嘌a(bǔ)碼數(shù)值
    x截?cái)酁閗位的結(jié)果是U2T(x mod 2^k), 括號(hào)中的含義與上述類似,函數(shù)是為了把最高有效位轉(zhuǎn)成-2^(k-1).

2.3整數(shù)運(yùn)算

2.3.1無(wú)符號(hào)加法

無(wú)符號(hào)的加法存在以下的原理



檢測(cè)無(wú)符號(hào)數(shù)加法中的溢出
對(duì)于x,y 計(jì)算s=x+y酪劫,當(dāng)且僅當(dāng)s<x(或者s<y)時(shí)吞鸭,發(fā)生了溢出。
無(wú)符號(hào)數(shù)求反
對(duì)于滿足0<=x<2^w 的任意x覆糟,其中w位的無(wú)符號(hào)逆元是以下的公式


2.3.2補(bǔ)碼加法

首先原理如下



檢測(cè)補(bǔ)碼加法中的溢出
s=x+y刻剥,當(dāng)且僅當(dāng)x,y大于零但s小于零時(shí)產(chǎn)生了正溢出,而當(dāng)x滩字,y小于零造虏,但x大于零時(shí),產(chǎn)生了負(fù)溢出

2.3.3補(bǔ)碼的非

公式如下麦箍,求補(bǔ)碼非得位級(jí)表示可以用求反后加一的來(lái)快速求得


2.3.4無(wú)符號(hào)乘法

原理如下


2.3.5補(bǔ)碼乘法

2.3.6乘以常數(shù)

  • 乘以2的冪
    左移一個(gè)數(shù)值等價(jià)于執(zhí)行一個(gè)與2的冪相乘的無(wú)符號(hào)乘法漓藕。
  • 歸納
    同時(shí)乘以常數(shù)K的表達(dá)可以通過(guò)以下的方法進(jìn)行優(yōu)化,首先内列,將K的二進(jìn)制表達(dá)成一組0和1交替的序列[(0...0)(1...1)(0...0)]
    可以用下面兩種不同形式中的一種來(lái)計(jì)算這些位對(duì)乘積的影響:考慮一組從位位置n到位位置m的連續(xù)的1(n>=m)
    形式A:(x<<n)+(x<<(n-1))+...(x<<m)
    形式B:(x<<(n+1))-(x<<m)

2.3.7除以2的冪

  • 除以2的冪的無(wú)符號(hào)除法



    除以2的冪的無(wú)符號(hào)除法

  • 向下舍入


  • 向上舍入(該處符號(hào)有誤)


2.4浮點(diǎn)數(shù)

2.4.1二進(jìn)制小數(shù)

用最基礎(chǔ)的小數(shù)點(diǎn)右邊的權(quán)設(shè)為1/2^i 的方法可以近似的描述二進(jìn)制小數(shù)

2.4.2 IEEE浮點(diǎn)表示

V=(-1)^s* M*2^E
一共三個(gè)字段撵术。符號(hào)位、整數(shù)位和小數(shù)位


單精度浮點(diǎn)數(shù)的分類
  • 情況1:規(guī)格化的值

  • 情況2:非規(guī)格化的值

  • 情況3:特殊值

以上暫時(shí)沒(méi)有理解话瞧,之后再詳細(xì)學(xué)習(xí)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嫩与,一起剝皮案震驚了整個(gè)濱河市寝姿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌划滋,老刑警劉巖饵筑,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異处坪,居然都是意外死亡根资,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門同窘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)玄帕,“玉大人,你說(shuō)我怎么就攤上這事想邦】阄疲” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵丧没,是天一觀的道長(zhǎng)鹰椒。 經(jīng)常有香客問(wèn)我,道長(zhǎng)呕童,這世上最難降的妖魔是什么漆际? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮夺饲,結(jié)果婚禮上奸汇,老公的妹妹穿的比我還像新娘。我一直安慰自己钞支,他們只是感情好茫蛹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烁挟,像睡著了一般婴洼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上撼嗓,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天柬采,我揣著相機(jī)與錄音,去河邊找鬼且警。 笑死粉捻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的斑芜。 我是一名探鬼主播肩刃,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了沸呐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤呢燥,失蹤者是張志新(化名)和其女友劉穎崭添,沒(méi)想到半個(gè)月后畅涂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睹耐,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铜幽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年园匹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掌眠。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疆虚,死狀恐怖朗若,靈堂內(nèi)的尸體忽然破棺而出仁连,到底是詐尸還是另有隱情缰犁,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布怖糊,位于F島的核電站,受9級(jí)特大地震影響颇象,放射性物質(zhì)發(fā)生泄漏伍伤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一遣钳、第九天 我趴在偏房一處隱蔽的房頂上張望扰魂。 院中可真熱鬧,春花似錦蕴茴、人聲如沸劝评。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蒋畜。三九已至,卻和暖如春撞叽,著一層夾襖步出監(jiān)牢的瞬間姻成,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工愿棋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留科展,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓糠雨,卻偏偏與公主長(zhǎng)得像才睹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355