【2】信息的表示和处理
1.現(xiàn)代計(jì)算機(jī)存儲(chǔ)和處理的信息都以二值信號(hào)表示。
2.機(jī)器為什么要使用二進(jìn)制進(jìn)行存儲(chǔ)和處理?
答:二值信號(hào)能夠很容易的被表示、存儲(chǔ)、傳輸。例如:
可以表示為穿孔卡片上有洞和無洞、導(dǎo)線上的高壓和低壓,順逆時(shí)針的磁場。
3.大多數(shù)機(jī)器使用8位的塊或者byte(字節(jié)),作為最小可尋址的內(nèi)存單位,而不是訪問內(nèi)存中的單獨(dú)位。
4.機(jī)器級(jí)程序?qū)?nèi)存視為一個(gè)非常大的字節(jié)數(shù)組,稱為虛擬內(nèi)存。
內(nèi)存的每個(gè)字節(jié)都由唯一的數(shù)字來標(biāo)識(shí),稱它為地址。
所有的地址集合就稱為虛擬地址空間。
5.根據(jù)機(jī)器的不同,我們可以將存儲(chǔ)順序分為大端法和小端法。
大端法:字節(jié)值從小到大的排序。
?
?
?
小端法:字節(jié)值從大到小的排序。
大多數(shù)的inter兼容機(jī)都只用小端模式;
IBM和Oracle大多數(shù)機(jī)器按大端模式操作;
安卓和IOS都只能運(yùn)行小端模式。
一旦選擇特定的操作系統(tǒng),那么字節(jié)的順序就固定下來了。
PS:至今也沒確定統(tǒng)一的字節(jié)順序,所以可以根據(jù)存儲(chǔ)的數(shù)據(jù)不同,選擇相應(yīng)機(jī)器,可提高性能,也可以買雙端法的處理器。
下面使用代碼測試不同系統(tǒng)的端顯示:
環(huán)境:windwos10 64位 處理器:Inter I7-7500U
運(yùn)行結(jié)果:
結(jié)果:int和float的結(jié)果是一樣的,指針值和機(jī)器相關(guān)。
值12345的int十六進(jìn)制表示為0x00003039.
可以看出在windows系統(tǒng)上最低的字節(jié)值0x39最先輸出,所以windows使用的小端法。
其他小端法系統(tǒng)為Linux32,linux64。
在sun為大端法機(jī)器。
6.不同的機(jī)器類型使用不同的且不兼容的指令和編碼方式;
即使是完全一樣的進(jìn)程,運(yùn)行在不用系統(tǒng)上也會(huì)有不同編碼規(guī)則,因此二進(jìn)制代碼是不兼容的。
二進(jìn)制代碼很少能在不同機(jī)器和操作系統(tǒng)組合之間移植。
7.確定一個(gè)位級(jí)表達(dá)式的結(jié)果的最好方法就是將十六進(jìn)制參數(shù)擴(kuò)展了二進(jìn)制表示并執(zhí)行二進(jìn)制運(yùn)算,然后轉(zhuǎn)回十六進(jìn)制。
8.補(bǔ)碼,位運(yùn)算。
根據(jù)補(bǔ)碼轉(zhuǎn)換無符號(hào)數(shù)公式:
?
? ? ? ? x+2w?x<0
T2Uw(x)=?
x, x≥0
x ? ?T2U4(x)
-8 ? 8
-3 ? 13
5 ? ?5
還有無符號(hào)轉(zhuǎn)換為補(bǔ)碼等公式不一一列舉了,具體請(qǐng)看該書。
其他:
(摘自其他博主?https://www.cnblogs.com/tjudzj/p/4190878.html)
補(bǔ)碼:
(1)正數(shù)的補(bǔ)碼:與原碼相同(已知原碼求補(bǔ)碼)
例如:+9的原碼是0000 1001。補(bǔ)碼也是0000 1001。
(2)負(fù)數(shù)的補(bǔ)碼:符號(hào)位為1,其余位為該數(shù)絕對(duì)值的原碼按位取反,然后整個(gè)數(shù)加1。
例如:-7原碼為1000 0111(高位為符號(hào)位,1表示負(fù)數(shù),0表示正數(shù)),補(bǔ)碼為1111 1001.
位運(yùn)算:
(1)正數(shù)右移位(以85為例,可以視作int 、long、uint、ulong之一,按哪個(gè)規(guī)則都行)
85的二進(jìn)制表示: 0000 0000 0000 0000 0000 0000 0101 0101
85右移(>>)3位: ? ? ? ? ? ? 0000 0000 0000 0000 0000 0000 0000 1010
移位后的結(jié)果十進(jìn)制表示: ? ? ?10
(2)負(fù)數(shù)右移位(以-85為例,可以視作int 、long之一,此處視為int,32位)
-85的二進(jìn)制補(bǔ)碼表示: 1111 1111 1111 1111 1111 1111 1010 1011
-85左移(>>)3位: ?1111 1111 1111 1111 1111 1111 1111 0101
移位后結(jié)果的原碼表示: ?1000 0000 0000 0000 0000 0010 0000 1011
移位后的結(jié)果十進(jìn)制表示: -11
?
最后,第二章習(xí)題太多,具體請(qǐng)看該書并實(shí)現(xiàn)。
轉(zhuǎn)載于:https://www.cnblogs.com/Zhengxue/p/8973656.html
總結(jié)
以上是生活随笔為你收集整理的【2】信息的表示和处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 猪皮做成眼角膜为盲人恢复视力 不用等人捐
- 下一篇: RBAC 权限设计(转载)