chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

計算機(jī)基礎(chǔ)知識之二進(jìn)制

jf_78858299 ? 來源:前端柒八九 ? 作者:前端柒八九 ? 2023-03-31 16:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

C/Java/JavaScript等高級語言編寫的程序中, 「數(shù)值」 、 「字符串」「圖像」 在計算機(jī)內(nèi)部都是以 「二進(jìn)制數(shù)值」 的形式來表現(xiàn)的

?

用二進(jìn)制數(shù)表示計算機(jī)信息的原因

計算機(jī)內(nèi)部是由IC這種電子部件構(gòu)成的。IC的所有 「引腳」 ,只有 「直流電壓」 0V5V兩個狀態(tài)。

?也就是說,IC的一個引腳,「只能表示兩個狀態(tài)」

?

IC的這個特性,決定了計算機(jī)的信息數(shù)據(jù)只能用二進(jìn)制數(shù)來處理。由于1位(一個引腳)只能表示兩個狀態(tài),所以二進(jìn)制的計數(shù)方式就變成了01、10、11、100...這種形式。

?計算機(jī)處理信息的 「最小單位」 -- 「位」 ,就相當(dāng)于二進(jìn)制中的一位。

?

圖片

IC的一個引腳表示二進(jìn)制的1位

二進(jìn)制的位數(shù)一般是8位、16位、32位···· 「也就是8的倍數(shù)」 ,這是因為計算機(jī)所處理的信息的 「基本單位」 是8位二進(jìn)制數(shù)。8位二進(jìn)制數(shù)被稱為一個 「字節(jié)」

?字節(jié)是最基本的**「信息計量單位」**

?

  • 「位」 是最小單位
  • 「字節(jié)」 是基本單位

?內(nèi)存和磁盤都使用 「字節(jié)單位」 來存儲和讀寫數(shù)據(jù),使用 「位單位」 則無法讀寫數(shù)據(jù)。

?

用字節(jié)單位處理數(shù)據(jù)時,如果數(shù)字小于存儲數(shù)據(jù)的字節(jié)數(shù)(=二進(jìn)制數(shù)的位數(shù)),那么高位上就 「用0填補(bǔ)」 。例如,100111這個6位二進(jìn)制數(shù),用8位(=1字節(jié))表示時為00100111。

在程序中,即使是用 「十進(jìn)制」「文字」 等記錄信息,在 「編譯」 后也會轉(zhuǎn)換成二進(jìn)制的值。

圖片

對于用二進(jìn)制數(shù)表示的信息,計算機(jī)不會區(qū)分它是數(shù)值、文字,還是某種圖片的模式,而是 「根據(jù)編寫程序的各位對計算機(jī)發(fā)出的指示進(jìn)行信息的處理」 。

例如,00100111這樣的二進(jìn)制數(shù),即可以將其當(dāng)做 「數(shù)值」 做加法運(yùn)算,也可以當(dāng)成(單引號)文字而顯示在顯示器上。

?具體進(jìn)行何種處理,取決于**「程序的編寫方式」**

?


什么是二進(jìn)制

二進(jìn)制數(shù)的值換成十進(jìn)制數(shù)的值,只需將二進(jìn)制的各 「數(shù)位」 的值和 「位權(quán)」 相乘,然后將相乘的結(jié)果相加即可。

圖片

位權(quán)

十進(jìn)制數(shù)39的各個 「數(shù)位」 的數(shù)值,并不只是簡單的39

  • 3表示的是3×10=30
  • 9表示的是9×1=9

這里的各個 「數(shù)位」 的數(shù)值相乘的101就是 「位權(quán)」 。數(shù)字的位數(shù)不同,位權(quán)也不一樣。

  • 第一位(最右邊的一位)是10的0次冪(=1)
  • 第二位是10的1次冪(=10)
  • 第三位是10的2次冪(=100)
  • 以此類推

? 「位權(quán)」 的思考方式同樣適用于二進(jìn)制

?

  • 第一位是2的0次冪(=1)
  • 第二位是2的1次冪(=2)
  • 第三位是2的2次冪(=4)
  • 以此類推

〇〇的xx次冪」 表示位權(quán),

  • 其中,十進(jìn)制數(shù)的情況下〇〇部分是10,二進(jìn)制數(shù)的情況下則為2〇〇被稱為**「基數(shù)」**
  • xx,在任何進(jìn)制數(shù)中都是**「數(shù)的位數(shù)-1」**
    • 即第一位是1-1=0次冪
    • 第二位是2-1=1次冪
    • 第三位是3-1=2次冪

?數(shù)值,表示的就是構(gòu)成數(shù)值的各 「數(shù)位」 的數(shù)值和 「位權(quán)」 相乘后相加的結(jié)果

?

二進(jìn)制數(shù)00100111用十進(jìn)制數(shù)表示的話是39,因為(0×128)+(0×64)+(1×32)+(0×16)+(0×8)+(1×4)+(1×2)+(1×1)= 39


移位運(yùn)算和乘除運(yùn)算的關(guān)系

和十進(jìn)制數(shù)一樣, 「四則運(yùn)算」 同樣也可以使用在二進(jìn)制數(shù)中,只要注意 「逢二進(jìn)位」 即可。

移位運(yùn)算

「移位運(yùn)算」 指的是將二進(jìn)制數(shù)值的各數(shù)位進(jìn)行 「左右移位」 的運(yùn)算。

移位有 「左移」向高位方向)和 「右移」向低位方向)兩種。

假設(shè)存在如下處理。把變量a中保存的十進(jìn)制數(shù)值39左移兩位后再將運(yùn)算結(jié)果存儲到變量b中。

a = 39;
b = a<<2;

<<這個運(yùn)算符表示 「左移」「右移」 時用>>運(yùn)算符。<<運(yùn)算符和>>運(yùn)算符的 「左側(cè)」「被移位的值」「右側(cè)」 表示要移位的 「位數(shù)」 。

在前面我們介紹過,無論程序中使用的是幾進(jìn)制,計算機(jī)內(nèi)部都會將其準(zhǔn)換成二進(jìn)制數(shù)來處理,因此都能進(jìn)行 「移位操作」

?針對 「左移運(yùn)算」 ,空出來的低位要進(jìn)行 「補(bǔ)0操作」

?

而右移操作,由于情況特殊,我們后面再做詳細(xì)介紹。

此外,移位操作使最高位或最低位 「溢出」 的數(shù)字,直接丟棄就可以了。

下圖,就是上述代碼的運(yùn)行過程。圖片

? 「移位運(yùn)算」 就好比使用二進(jìn)制表示的 「圖片模式」 像霓虹燈一樣 「左右流動」 的樣子

?


補(bǔ)數(shù)

二進(jìn)制數(shù)中表示 「負(fù)數(shù)」 值時,一般會把 「最高位作為符號來使用」 ,因此我們把這個最高位稱為**「符號位」**

  • 符號位是0時表示正數(shù)
  • 符號位是1時表示負(fù)數(shù)

計算機(jī)在做減法運(yùn)算時,實際上內(nèi)部是在 「加法運(yùn)算」 。在表示負(fù)數(shù)時就需要使用 「二進(jìn)制的補(bǔ)數(shù)」 。

?補(bǔ)數(shù)就是**「用正數(shù)來表示負(fù)數(shù)」**

?

為了能獲取補(bǔ)數(shù),需要**「將二進(jìn)制數(shù)的各位的數(shù)值全部取反,然后再將結(jié)果加1」**

例如,用8位二進(jìn)制數(shù)表示-1時,只需要求得1,也就是00000001的補(bǔ)數(shù)即可。

  • 將各數(shù)位的0取反加1,1取反成0
  • 再將取反的結(jié)果加1
  • 最后轉(zhuǎn)化成11111111

圖例如下:圖片

1-1在計算機(jī)內(nèi)部是如何實現(xiàn)的

1-1,也就是1+(-1),一眼就能知道答案,結(jié)果是0。

通過上文我們得知,-1用二進(jìn)制表示為11111111。那么,在計算機(jī)內(nèi)部計算1-1,就變成了。

00000001 + 11111111

結(jié)果確實為0(=00000000)。這個運(yùn)算過程中出現(xiàn)了 「最高位溢出」 的情況, 「對于溢出的位,計算機(jī)會直接忽略掉」 。

即在8位的范圍內(nèi)進(jìn)行計算時候,100000000這個9位二進(jìn)制數(shù)就會被認(rèn)為是00000000這一8位二進(jìn)制數(shù)。

圖片

?補(bǔ)數(shù)求解的變換方法就是**「取反加1」**

?

將二進(jìn)制數(shù)的值取反加1的結(jié)果,和原來的值相加,結(jié)果為0


邏輯右移和算術(shù)右移的區(qū)別

右移有移位后在最高位補(bǔ)0和補(bǔ)1兩種情況。當(dāng)二進(jìn)制數(shù)的值表示 「圖形模式」 而非數(shù)值時候,移位后需要在最高位補(bǔ)0。這就稱為 「邏輯右移」 。

圖片

將二進(jìn)制數(shù)作為 「帶符號的數(shù)值」 進(jìn)行運(yùn)算時,移位后要在最高位填充 「移位前」 符號位的值(01)。這就稱為 「算術(shù)右移」 。

  • 如果數(shù)值是用補(bǔ)數(shù)表示的負(fù)數(shù)值,那么右移后再空出來的最高位補(bǔ)1
  • 如果是正數(shù),只需要在最高位補(bǔ)0即可

?只有在 「右移」 時才必須區(qū)分 「邏輯位移」 和**「算術(shù)位移」**

?

圖片

?左移時,無論是 「圖形模式」邏輯左移)還是 「相乘運(yùn)算」算術(shù)左移),都只需要在空出來的 「低位補(bǔ)0」 即可。

?

符號擴(kuò)充

以8位二進(jìn)制數(shù)為例, 「符號擴(kuò)充」 就是指在保存值不變的前提下將其準(zhǔn)換成16位和32位的二進(jìn)制。

圖片不管是正數(shù)還是用補(bǔ)數(shù)表示的負(fù)數(shù),都只需要 「用符號位的值(0或1)填充高位」 即可。


邏輯運(yùn)算

在運(yùn)算中,與邏輯相對的術(shù)語是算術(shù)。

  • 將二進(jìn)制數(shù)表示的信息作為 「四則運(yùn)算」 的數(shù)值來處理就是**「算術(shù)」**
  • 像圖形模式,將數(shù)值處理為單純的01的羅列就是**「邏輯」**

計算機(jī)能處理的運(yùn)算,大體可分為 「算術(shù)運(yùn)算」「邏輯運(yùn)算」 。

  • 「算術(shù)運(yùn)算」 是指加減乘除四則運(yùn)算
  • 「邏輯運(yùn)算」 是指對二進(jìn)制數(shù) 「各數(shù)字位的01分別進(jìn)行處理」 的運(yùn)算
    • 邏輯 「非」NOT運(yùn)算)
    • 邏輯 「與」 (AND運(yùn)算)
    • 邏輯 「或」OR運(yùn)行)
    • 邏輯 「異或」XOR運(yùn)算)

「邏輯非」 是指的是0變成11變成0的取反操作。圖片

「邏輯與」 指的是”兩個都是1“時,運(yùn)算結(jié)果為1,其他情況下運(yùn)算結(jié)果都為0的運(yùn)算。

圖片

邏輯與的真值表

「邏輯或」 指的是”至少有一方是1“時,運(yùn)算結(jié)果為1,其他情況下運(yùn)算結(jié)果都是0的運(yùn)算

圖片

邏輯或的真值表

「邏輯異或」 指的是排斥相同數(shù)值的運(yùn)算?!皟蓚€數(shù)值不同”,也就是說,當(dāng)“其中一方是1,另一方是0“時運(yùn)算結(jié)果是1,其他情況下結(jié)果都是0.

圖片

邏輯異或的真值表

?在進(jìn)行邏輯運(yùn)算時,都是對相對應(yīng)的 「各數(shù)位」 分別進(jìn)行運(yùn)算

?

「大家不要把二進(jìn)制數(shù)表示的值當(dāng)作數(shù)值,而應(yīng)該把它看作是圖形或者開關(guān)上的ON/OFF」 。并且, 「邏輯運(yùn)算」 的運(yùn)算對象不是數(shù)值,因此不會出現(xiàn)進(jìn)位的情況。

下圖表示的是對NI的兩個字母的圖形模式進(jìn)行各種 「邏輯運(yùn)算」 后的結(jié)果。假設(shè)白色部分表示1,黑色部分表示0.圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 二進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    807

    瀏覽量

    42333
  • 計算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7663

    瀏覽量

    90820
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2989

    瀏覽量

    109765
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    590

    瀏覽量

    22290
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    54822
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    計算機(jī)為什么使用二進(jìn)制來表達(dá)

    在生活中,人們已經(jīng)習(xí)慣用十進(jìn)制來計數(shù),0~9的發(fā)明是人類的偉大進(jìn)步,從此就可以用0~9這十個數(shù)字的組合能表示任何大小的數(shù)字。于是初學(xué)計算機(jī)的人往往會問的問題是,計算機(jī)為什么使用二進(jìn)制
    的頭像 發(fā)表于 10-30 15:44 ?4487次閱讀
    <b class='flag-5'>計算機(jī)</b>為什么使用<b class='flag-5'>二進(jìn)制</b>來表達(dá)

    計算機(jī)硬件怎樣執(zhí)行二進(jìn)制程序的

    計算機(jī)怎樣將二進(jìn)制數(shù)當(dāng)成指令執(zhí)行的?
    發(fā)表于 12-11 08:54

    為什么計算機(jī)內(nèi)部進(jìn)行二進(jìn)制運(yùn)算,而不是十進(jìn)制運(yùn)算?

    閑來沒事在b站上看李永樂老師講的這個視頻,覺得挺有意思的。這篇文章主要是記一下筆記。本篇文章里面的數(shù)字若沒有特殊指明,默認(rèn)為二進(jìn)制數(shù)字。你們有沒有這樣的疑問:為什么計算機(jī)內(nèi)部進(jìn)行二進(jìn)制運(yùn)算,而不是
    發(fā)表于 07-23 09:59

    二進(jìn)制數(shù)的運(yùn)算及加法電路

    前言上篇 計算機(jī)組成原理第1章 計算機(jī)基礎(chǔ)知識1.1 數(shù)制1.2 邏輯代數(shù)(布爾代數(shù))1.3 邏輯電路1.4 二進(jìn)制數(shù)的運(yùn)算及加法電路第2章 微型
    發(fā)表于 09-10 07:34

    二進(jìn)制編碼和二進(jìn)制數(shù)據(jù)

    二進(jìn)制編碼和二進(jìn)制數(shù)據(jù)   二進(jìn)制編碼是計算機(jī)內(nèi)使用最多的碼制,它只使用兩個基本符號"0"和"1",并且通過由這兩個符號組成的
    發(fā)表于 10-13 16:22 ?5021次閱讀

    C#教程之二進(jìn)制存取圖片

    C#教程之二進(jìn)制存取圖片,很好的C#資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-20 15:27 ?9次下載

    二進(jìn)制如何轉(zhuǎn)換為十進(jìn)制?

    二進(jìn)制轉(zhuǎn)換為十進(jìn)制(base-2到base-10) )數(shù)字和背面是一個重要的概念,因為二進(jìn)制編號系統(tǒng)構(gòu)成了所有計算機(jī)和數(shù)字系統(tǒng)的基礎(chǔ)。
    的頭像 發(fā)表于 06-22 10:21 ?2.5w次閱讀

    計算機(jī)二進(jìn)制概念和進(jìn)制運(yùn)算的詳細(xì)資料簡介

    本文檔的主要內(nèi)容詳細(xì)介紹的是計算機(jī)二進(jìn)制概念和進(jìn)制運(yùn)算的詳細(xì)資料簡介。
    發(fā)表于 12-11 17:34 ?19次下載
    <b class='flag-5'>計算機(jī)</b>的<b class='flag-5'>二進(jìn)制</b>概念和<b class='flag-5'>進(jìn)制</b>運(yùn)算的詳細(xì)資料簡介

    計算機(jī)在硬件層面究竟是怎么表示二進(jìn)制 1

    本篇文章來看看計算機(jī)在硬件層面究竟是怎么表示二進(jìn)制的,CPU究竟是怎么實現(xiàn)的?通過本文的學(xué)習(xí),我們也可以反過來明白為什么計算機(jī)會采用二進(jìn)制了。
    的頭像 發(fā)表于 02-01 15:28 ?1555次閱讀
    <b class='flag-5'>計算機(jī)</b>在硬件層面究竟是怎么表示<b class='flag-5'>二進(jìn)制</b> 1

    計算機(jī)在硬件層面究竟是怎么表示二進(jìn)制 2

    本篇文章來看看計算機(jī)在硬件層面究竟是怎么表示二進(jìn)制的,CPU究竟是怎么實現(xiàn)的?通過本文的學(xué)習(xí),我們也可以反過來明白為什么計算機(jī)會采用二進(jìn)制了。
    的頭像 發(fā)表于 02-01 15:28 ?1289次閱讀
    <b class='flag-5'>計算機(jī)</b>在硬件層面究竟是怎么表示<b class='flag-5'>二進(jìn)制</b> 2

    二進(jìn)制數(shù)據(jù)及取值范圍的計算方法

    本文介紹二進(jìn)制數(shù)據(jù)的相關(guān)知識,如定義、取值范圍計算、轉(zhuǎn)換為十進(jìn)制的方法以及一些常見位數(shù)的二進(jìn)制數(shù)據(jù)的取值范圍等。
    的頭像 發(fā)表于 11-08 15:48 ?3601次閱讀
    <b class='flag-5'>二進(jìn)制</b>數(shù)據(jù)及取值范圍的<b class='flag-5'>計算</b>方法

    10進(jìn)制轉(zhuǎn)換為二進(jìn)制的算法

    10進(jìn)制轉(zhuǎn)換為二進(jìn)制計算機(jī)領(lǐng)域中非常重要的一個問題。在計算機(jī)中,所有的數(shù)據(jù)都是以二進(jìn)制形式進(jìn)行存儲和處理的。因此,我們常常需要將10
    的頭像 發(fā)表于 01-11 09:14 ?3660次閱讀

    10進(jìn)制轉(zhuǎn)換為二進(jìn)制的算法

    進(jìn)制轉(zhuǎn)換為二進(jìn)制計算機(jī)科學(xué)中非?;A(chǔ)且重要的概念之一。在理解和應(yīng)用計算機(jī)科學(xué)的基礎(chǔ)知識時,掌握這個算法是至關(guān)重要的。 在開始講解十
    的頭像 發(fā)表于 01-15 10:32 ?4850次閱讀

    二進(jìn)制、八進(jìn)制、十六進(jìn)制在現(xiàn)實當(dāng)中有什么意義?

    二進(jìn)制、八進(jìn)制、十六進(jìn)制在現(xiàn)實當(dāng)中有什么意義? 二進(jìn)制、八進(jìn)制和十六進(jìn)制在現(xiàn)實生活中有著廣泛的應(yīng)
    的頭像 發(fā)表于 01-16 11:14 ?7052次閱讀

    計算機(jī)采用二進(jìn)制的原因不包括什么

    計算機(jī)采用二進(jìn)制的原因主要是基于其物理實現(xiàn)的簡便性、邏輯運(yùn)算的簡化、以及電子元件的穩(wěn)定性。然而,這個問題要求我們探討計算機(jī)采用二進(jìn)制的原因不包括什么,這實際上是一個反向思考的問題。在回
    的頭像 發(fā)表于 09-04 17:03 ?1277次閱讀