自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

圖解計(jì)算機(jī)中數(shù)據(jù)的表示形式

大數(shù)據(jù) 數(shù)據(jù)分析
作者個(gè)人研發(fā)的在高并發(fā)場(chǎng)景下,提供的簡(jiǎn)單、穩(wěn)定、可擴(kuò)展的延遲消息隊(duì)列框架,具有精準(zhǔn)的定時(shí)任務(wù)和延遲隊(duì)列處理功能。

[[377584]]

作者個(gè)人研發(fā)的在高并發(fā)場(chǎng)景下,提供的簡(jiǎn)單、穩(wěn)定、可擴(kuò)展的延遲消息隊(duì)列框架,具有精準(zhǔn)的定時(shí)任務(wù)和延遲隊(duì)列處理功能。自開源半年多以來(lái),已成功為十幾家中小型企業(yè)提供了精準(zhǔn)定時(shí)調(diào)度方案,經(jīng)受住了生產(chǎn)環(huán)境的考驗(yàn)。為使更多童鞋受益,現(xiàn)給出開源框架地址:https://github.com/sunshinelyz/mykit-delay

寫在前面

應(yīng)很多小伙伴的要求,我開了一個(gè)新的專題【程序員進(jìn)階系列】,在這個(gè)專題中,我會(huì)跟大家分享有關(guān)計(jì)算機(jī)和軟件的一系列 底層 知識(shí),讓小伙伴們更好的理解計(jì)算機(jī)的底層架構(gòu)知識(shí),能夠更好的提高自身的編程能力和軟件設(shè)計(jì)能力。本篇就作為整個(gè)專題的開篇,希望能夠?yàn)樾』锇閭儙?lái)實(shí)質(zhì)性的幫助。

數(shù)據(jù)的表示

在計(jì)算機(jī)中,所有的數(shù)據(jù)都是以二進(jìn)制的形式進(jìn)行表示的,也就是說(shuō),在計(jì)算機(jī)中使用0和1來(lái)表示所有的數(shù)據(jù)。而我們?nèi)粘I钪械臄?shù)字都是10進(jìn)制的,那我們平時(shí)使用的數(shù)字如果在計(jì)算機(jī)中表示時(shí)就需要進(jìn)行進(jìn)制的轉(zhuǎn)換。

進(jìn)制轉(zhuǎn)換

R進(jìn)制轉(zhuǎn)10進(jìn)制

R進(jìn)制轉(zhuǎn)10進(jìn)制可以使用按權(quán)展開的方法,具體的操作就是:將R進(jìn)制數(shù)的每一位數(shù)值使用R^k^表示,底數(shù)是R,指數(shù)是k。其中,k與該位和小數(shù)點(diǎn)之間的位置有關(guān)。當(dāng)這個(gè)位置位于小數(shù)據(jù)左邊時(shí),k的值是從小數(shù)點(diǎn)向左依次數(shù)的個(gè)數(shù),需要注意的是:緊鄰小數(shù)點(diǎn)的數(shù)字位置為0,接下來(lái)是1,2...依次類推。同樣的,如果這個(gè)位置在小數(shù)點(diǎn)的右邊,則緊鄰小數(shù)據(jù)點(diǎn)位置的數(shù)字從-1開始,依次向右數(shù)為-2,-3等等,依此類推。

例如,我們給出一個(gè)二進(jìn)制數(shù)字,11010101.01,轉(zhuǎn)換為10進(jìn)制數(shù)字為:1 x 2^7^ + 1 x 2^6^ + 0 x 2^5^ + 1 x 2^4^ + 0 x 2^3^ + 1 x 2^2^ + 0 x 2^1^ + 1 x 2^0^ + 0 x 2^-1^ + 1 x 2^-2^。

注:2^7^表示2的7次方。

再比如,我們給出一個(gè)八進(jìn)制數(shù),76128.01,轉(zhuǎn)換為10進(jìn)制數(shù)字為:7 x 8^4^ +6 x 8^3^ + 1 x 8^2^ + 2 x 8^1^ + 8 x 8^0^ + 0 x 8^-1^ + 1 x 8^-2^

十進(jìn)制轉(zhuǎn)R進(jìn)制

十進(jìn)制轉(zhuǎn)R進(jìn)制就比較簡(jiǎn)單了,這里我們可以使用短除法。

例如,將十進(jìn)制數(shù)字69轉(zhuǎn)換為二進(jìn)制的過(guò)程如下所示。

得出短除的結(jié)果后,我們需要將余數(shù)倒過(guò)來(lái)排列即為十進(jìn)制69轉(zhuǎn)換為二進(jìn)制的結(jié)果,所以結(jié)果數(shù)據(jù)為:1000101。

二進(jìn)制與八進(jìn)制互轉(zhuǎn)

二進(jìn)制轉(zhuǎn)八進(jìn)制時(shí),每三位二進(jìn)制數(shù)表示一個(gè)八進(jìn)制數(shù)。因?yàn)樵诎诉M(jìn)制中,總共有8個(gè)基數(shù),分別是0~7,逢8進(jìn)1。而如果要使用二進(jìn)制來(lái)表示時(shí),0的二進(jìn)制為000,7的二進(jìn)制為111,所以,每三位二進(jìn)制數(shù)對(duì)應(yīng)一位八進(jìn)制數(shù)。反過(guò)來(lái),每一位八進(jìn)制數(shù)對(duì)應(yīng)三位二進(jìn)制數(shù)。

具體的劃分策略是,從二進(jìn)制的低位開始,從低到高,也就是從右向左,每三位二進(jìn)制數(shù)對(duì)應(yīng)一個(gè)八進(jìn)制數(shù),不足三位的前面補(bǔ)0,例如,我們將二進(jìn)制數(shù):10001110轉(zhuǎn)化為八進(jìn)制數(shù)的過(guò)程,具體如下所示。

所以,二進(jìn)制數(shù)10001110轉(zhuǎn)化為八進(jìn)制數(shù)的結(jié)果為216。

同理,八進(jìn)制轉(zhuǎn)二進(jìn)制與二進(jìn)制轉(zhuǎn)八進(jìn)制正好相反,八進(jìn)制的每一位對(duì)應(yīng)三位的二進(jìn)制數(shù)。也就是說(shuō),將八進(jìn)制數(shù)的每一位轉(zhuǎn)化成三位的二進(jìn)制數(shù)即可。

二進(jìn)制與十六進(jìn)制互轉(zhuǎn)

在十六進(jìn)制表示的數(shù)字中,總共有15個(gè)基數(shù),為0~15,逢16進(jìn)1。如果要將二進(jìn)制數(shù)轉(zhuǎn)化為十六進(jìn)制數(shù)時(shí),首先要弄清楚每位十六進(jìn)制數(shù)需要多少為二進(jìn)制數(shù)表示。在十六進(jìn)制中,最大的基數(shù)為15,15的二進(jìn)制表示為:1111,最小的基數(shù)為0,0的二進(jìn)制數(shù)為0000,也就是說(shuō),十六進(jìn)制的基礎(chǔ)使用二進(jìn)制表示為 0000~1111,所以,每位十六進(jìn)制數(shù)需要四位二進(jìn)制數(shù)表示。

從二進(jìn)制數(shù)的低位開始,也就是從右側(cè)開始,每四位二進(jìn)制數(shù)對(duì)應(yīng)一位十六進(jìn)制數(shù)。

例如,我們需要將二進(jìn)制數(shù)10001110轉(zhuǎn)換為十六進(jìn)制數(shù),如下所示。

注意:在十六進(jìn)制中,分別使用A,B,C,D,E,F代表10,11,12,13,14,15。

所以,二進(jìn)制10001110轉(zhuǎn)化為十六進(jìn)制的結(jié)果為8E。

十六進(jìn)制轉(zhuǎn)二進(jìn)制與二進(jìn)制轉(zhuǎn)十六進(jìn)制正好相反,將十六進(jìn)制的每一位轉(zhuǎn)換為四位二進(jìn)制數(shù)即可。

數(shù)據(jù)的碼制

在計(jì)算機(jī)中,帶符號(hào)的機(jī)器數(shù)可以采用原碼、反碼、補(bǔ)碼和移碼表示,這些編碼稱為碼制。

原碼

在原碼表示中,最高位是符號(hào)位,0表示正號(hào),1表示負(fù)號(hào),其余的n-1位表示數(shù)值的絕對(duì)值,數(shù)值0的原碼有兩種表示形式:

反碼

在反碼中,最高位是符號(hào)位,0表示正號(hào),1表示負(fù)號(hào),正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼是其絕對(duì)值按位取反。數(shù)值0的反碼有兩種表示形式:

補(bǔ)碼

在補(bǔ)碼中,最高位是符號(hào)位,0表示正號(hào),1表示負(fù)號(hào),正數(shù)的補(bǔ)碼與原碼和反碼相同,負(fù)數(shù)的補(bǔ)碼等于其反碼的末位加1。在補(bǔ)碼的表示中,0有唯一的補(bǔ)碼:

移碼

移碼表示法是在數(shù)X上增加一個(gè)偏移量來(lái)定義的,常用于表示浮點(diǎn)數(shù)中的階碼。如果機(jī)器字長(zhǎng)為n,規(guī)定偏移量為 2^n-1^。

實(shí)際上,在偏移 2^n-1^的情況下,只要將補(bǔ)碼的符號(hào)位取反就可以獲得相應(yīng)的移碼。

碼制總結(jié)

我們來(lái)看下面的表格,這里,我直接使用八位的二進(jìn)制數(shù)來(lái)表示相應(yīng)的數(shù)值。

碼制 數(shù)值1 數(shù)值-1 1-1
原碼 0000 0001 1000 0001 1000 0010
反碼 0000 0001 1111 1110 1111 1111
補(bǔ)碼 0000 0001 1111 1111 0000 0000
移碼 1000 0001 0111 1111 1000 0000

通過(guò)表格我們發(fā)現(xiàn):

  • 正數(shù)的原碼、反碼和補(bǔ)碼是相同的。
  • 負(fù)數(shù)的反碼是原碼除符號(hào)位外,其他位分別取反;
  • 負(fù)數(shù)的補(bǔ)碼是其反碼的末位加1。
  • 移碼是在補(bǔ)碼的基礎(chǔ)上符號(hào)位取反得到。

在負(fù)數(shù)的原碼和補(bǔ)碼的轉(zhuǎn)換中,我們可以得出如下結(jié)論:

  • 負(fù)數(shù)的原碼轉(zhuǎn)補(bǔ)碼是在原碼的基礎(chǔ)上除符號(hào)位外,其他位取反,然后末位加1。
  • 負(fù)數(shù)的補(bǔ)碼轉(zhuǎn)原碼是在補(bǔ)碼的基礎(chǔ)上除符號(hào)位外,其他位取反,然后末位加1。

也就是說(shuō),負(fù)數(shù)的原碼轉(zhuǎn)補(bǔ)碼和補(bǔ)碼轉(zhuǎn)原碼的規(guī)則是一樣的。小伙伴們可以根據(jù)表格自行驗(yàn)證

計(jì)算機(jī)使用補(bǔ)碼進(jìn)行加減法運(yùn)算

我們?cè)賮?lái)看表格的最后一列 1-1,在計(jì)算機(jī)中,表示為1+(-1),其正確的結(jié)果應(yīng)該為0。接下來(lái),我們分別分析下使用原碼、反碼、補(bǔ)碼和移碼進(jìn)行加減法運(yùn)算的結(jié)果的正確性。

  • 表格的第一行中,使用原碼計(jì)算的結(jié)果為1000 0010,轉(zhuǎn)換為10進(jìn)制數(shù)為-2,1-1不等于-2,所以,使用原碼進(jìn)行加減法運(yùn)算的結(jié)果是錯(cuò)誤的。
  • 在反碼中,計(jì)算1-1的結(jié)果為1111 1111,顯然結(jié)果不為0,所以,使用反碼進(jìn)行加減法運(yùn)算的結(jié)果是錯(cuò)誤的。
  • 在補(bǔ)碼中,計(jì)算1-1的結(jié)果為0000 0000,結(jié)果為0,所以,使用補(bǔ)碼進(jìn)行加減法運(yùn)算的結(jié)果是正確的。
  • 在移碼中,計(jì)算1-1的結(jié)果為1000 0000,結(jié)果為-0,雖然-0也等于0,但是嚴(yán)格意義來(lái)講,這個(gè)結(jié)果是不正確的。

在計(jì)算機(jī)中,不會(huì)使用移碼進(jìn)行加減法運(yùn)算,移碼用于浮點(diǎn)數(shù)的階碼。

本文轉(zhuǎn)載自微信公眾號(hào)「冰河技術(shù)」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系冰河技術(shù)公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 冰河技術(shù)
相關(guān)推薦

2023-10-11 18:30:39

Web系統(tǒng)程序

2023-12-01 15:57:07

系統(tǒng)調(diào)用計(jì)算機(jī)

2018-08-24 10:35:49

物理內(nèi)存存儲(chǔ)

2011-07-05 13:11:45

2023-01-27 20:02:24

數(shù)值字符串二進(jìn)制

2016-12-12 09:39:40

2012-12-20 09:42:16

Linux超級(jí)計(jì)算機(jī)HPC

2013-02-27 14:31:17

Windows Ser

2021-02-03 05:25:39

存儲(chǔ)層次化代碼

2021-02-01 06:41:47

流水線計(jì)算機(jī)隊(duì)列

2012-09-05 10:25:05

超級(jí)計(jì)算機(jī)500強(qiáng)

2015-09-30 11:22:19

計(jì)算機(jī)大數(shù)據(jù)

2024-04-02 11:39:40

二進(jìn)制儲(chǔ)存器網(wǎng)絡(luò)

2009-10-30 11:24:31

2009-06-25 09:01:42

Linux

2021-02-04 11:01:59

計(jì)算機(jī)信號(hào)轉(zhuǎn)換

2021-04-15 18:09:14

存儲(chǔ)程序計(jì)算機(jī)

2012-04-16 14:58:42

2020-11-06 09:19:20

應(yīng)用編譯源代碼

2023-11-22 13:45:37

計(jì)算機(jī)視覺(jué)數(shù)據(jù)預(yù)處理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)