小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

數(shù)值表示與位運算一點筆記

 Ralf_Jones 2005-12-29
數(shù)值表示與位運算一點筆記

 

1,  存儲器由若干“字節(jié)”byte單元組成。而每個字節(jié)都有一個地址,當(dāng)然這個地址是物理排序的,怎么說呢?好比就是從0開始刻出的標尺一樣的刻度位置,所以地址是物理固定的;我們說的改變地址,其實改變的不是地址,而是地址里面的內(nèi)容。字節(jié)則是由若干個二進制位bit組成的。而若干個字節(jié)組成一個存儲單元(比如4個字節(jié)可以存儲Int整數(shù)的單元),叫做“字”(word)。在每一個存儲一個數(shù)據(jù)或者一個指令(所謂的32位,64位指令系統(tǒng))。另外,一個字節(jié)由8個二進制位組成,最右邊的一位是“最低位”,最左邊的一位是“最高位”,每個位上的值是0或者1。比如ox10000001表現(xiàn)了這個高位序列。

2,  表示數(shù)值的方法:原碼,反碼和補碼。

1)  原碼。最高位是符號位(0表示正,1表示負),其他各位表示數(shù)值本身的絕對值。注意小譚說,+0和-0表示的不是同一個0,在內(nèi)存中有兩個表示,所以0不適合計算機的運算。有個問題,在我們編程中經(jīng)常用到比較(如:value == 0 )這樣的表達式,經(jīng)過實踐的檢驗是正確可行的,我測試了一下,正0和負0都表示成了同一個值。怎么證明小譚的說法,請大家指點。

2)  反碼。若一個值是正,其反碼和原碼是一樣的;若為負,則符號位為1,其余各位是對原碼取反。

3)  補碼。原碼和反碼不適合計算機內(nèi)運算,因為要單獨處理其符號。補碼規(guī)則:對整數(shù),原碼、反碼、補碼相同;對負數(shù),最高位為1,其余各位取原碼的反,然后對整個數(shù)加1。

4)  總結(jié):這些數(shù)值表示,在我編程過程中從來沒有考慮和體驗過,一定是我太菜的緣故。

3,  位運算。運算量只能是整數(shù)或者字符型,不能為實數(shù)等其他類型。

1)  & 按位與:兩個相應(yīng)位都位1,則為1,否則為0。特殊用途

l         清零。找一個數(shù)滿足原來的數(shù)中為1的位在新數(shù)中對應(yīng)0條件即可。

l         取一個數(shù)的指定位。比如高位或者低位,將所取的位對應(yīng)1,其他位對應(yīng)0。

2)   |按位或:兩個相應(yīng)位只要有一個為1,該位結(jié)果為1。作用主要是對一個數(shù)據(jù)某些位定位為1。

3)   ^ 按位異或:參加運算的兩個相應(yīng)位同號,則為0;異號則為1。注意

l         特定位翻轉(zhuǎn)。構(gòu)造的數(shù)在特定位上取1,其余位取0

l         0^,則是保留原值。

l         交換兩個值,不用臨時變量。a = a ^b; b=b^a;a=a^b

4)   ~ 取反:對二進制按位取反,注意其優(yōu)先級特別高

5)   <<  左移:左移一位相當(dāng)于該數(shù)乘以2,兩位乘以4,改規(guī)則只適合在左翼中溢出的被舍棄的高位不含1的情況。

6)   >> 右移:就好理解了,但是要注意符號位問題。

l         無符號數(shù),右移在左邊高位移入0。

l         有符號數(shù),整數(shù)的話移入0,負數(shù)的話,移入01取決于所用的計算機系統(tǒng)。即移入0為“邏輯右移”,移入1為“算術(shù)右移”。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多