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

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

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

為什么在計(jì)算機(jī)里Byte是從-128到127?

strongerHuang ? 來源:嵌入式專欄 ? 作者:嵌入式專欄 ? 2021-04-15 11:43 ? 次閱讀

計(jì)算機(jī)是一個(gè)很神奇的東西,僅靠 0 和 1 就能運(yùn)算、存儲(chǔ)等操作。那么,為什么Byte是從是從-128到127?

今天就給大家講講計(jì)算機(jī)二進(jìn)制的一些內(nèi)容。

1

計(jì)算機(jī)表示數(shù)據(jù)的規(guī)則這個(gè)問題的解釋要從符號(hào)位說起,在計(jì)算機(jī)的世界里,數(shù)字的表示采用的是二進(jìn)制的規(guī)則,如果自然界只存在正數(shù),那么計(jì)算機(jī)的編碼方式將無比簡(jiǎn)單,直接就能使用二進(jìn)制來表示。比如十進(jìn)制的8,直接就用1000表示就可以。

但是自然界還存在負(fù)數(shù),在現(xiàn)實(shí)社會(huì)中我們使用正號(hào)和負(fù)號(hào)來表示,但是對(duì)于計(jì)算機(jī)來說,要添加正號(hào)和負(fù)號(hào)不是那么容易的事情,會(huì)帶來電路復(fù)雜度成倍的上升。

于是,所謂的符號(hào)位出現(xiàn)了,采用最高位來表示符號(hào)位,0為正數(shù),1為負(fù)數(shù)。我覺得本質(zhì)上符號(hào)位就是為了解決計(jì)算機(jī)如何表示負(fù)數(shù)而出現(xiàn)的。

2

原碼、反碼、補(bǔ)碼

有了正數(shù)和負(fù)數(shù),下面說說運(yùn)算的問題,根據(jù)馮諾依曼計(jì)算機(jī)體系得知,一臺(tái)計(jì)算機(jī)由運(yùn)算器,控制器,存儲(chǔ)器,輸入輸出設(shè)備組成,其中運(yùn)算器只有加法運(yùn)算器(其他的運(yùn)算全部轉(zhuǎn)換成加法運(yùn)算來完成),所以呢,計(jì)算機(jī)世界的減法只能用加法表示。

比如:4-2 只能用4+(-2)運(yùn)算。

1.原碼-2怎么表示?最直觀的表示方法表示為1010,最高位是符號(hào)位。這樣的表示方式,我們稱為原碼表示法。然后我們就愉快的開始了運(yùn)算。

4-2=0100+1010=1110=-62-2=0010+1010=1100=-4

很明顯結(jié)果是不對(duì)的,所以不能用原碼來表示負(fù)數(shù)。但是主要的問題是因?yàn)閮蓚€(gè)相反數(shù)相加不等于0導(dǎo)致其他運(yùn)算的結(jié)果錯(cuò)誤。

假設(shè)解決了相反數(shù)相加等于0:4-2=2+2-2=2,那么其他的運(yùn)算也是可以得到正確結(jié)果的。

2.反碼為了解決這個(gè)問題,我們引入了反碼。

負(fù)數(shù)是一個(gè)正數(shù)的相反數(shù),所以我們將一個(gè)正數(shù)全部按位取反來表示一個(gè)負(fù)數(shù),這種表示負(fù)數(shù)的方式就是反碼。

比如:2是0010,那么-2就是1101,然后我們?cè)賮黹_始愉快的運(yùn)算之路。

4-2=0100+1101=0001(反碼)=0001=1

2-2=0010+1101=1111(反碼)=1000=-0

-4-2=1011+1101=1000(反碼)=1111=-7

-1-2=1110+1101=1011(反碼)=1100=-4

實(shí)驗(yàn)發(fā)現(xiàn)除了兩個(gè)相反數(shù)相加稍微接近我們所熟知的結(jié)果,其他的結(jié)果簡(jiǎn)直不忍直視,所以用反碼來表示負(fù)數(shù)也是不靠譜的。

實(shí)際上,反碼是可以用來做運(yùn)算的。我們發(fā)現(xiàn)當(dāng)符號(hào)位存在進(jìn)位的時(shí)候,此時(shí)你的運(yùn)算的結(jié)果可能跟你的預(yù)期是有差距的,但是是可以通過修正結(jié)算過程來達(dá)到期望的結(jié)果的。修正的方法就是如果符號(hào)位有進(jìn)位的情況下,將進(jìn)位加到結(jié)果的最后一位就可以對(duì)結(jié)果達(dá)成修正。

比如:4-2=0100+1101=0001+1=0010=2 結(jié)果正確-4-2=1011+1101=1000(反碼)+1=1001(反碼)=1110=-6 結(jié)果正確-1-2=1110+1101=1011(反碼)+1=1100(反碼)=1011=-3 結(jié)果正確

這說明反碼是可以用來進(jìn)行減法計(jì)算的,但是需要付出額外的代價(jià),并且沒有解決+0和-0的問題。

3.補(bǔ)碼怎么來解決負(fù)數(shù)的表示問題呢?偉大的科學(xué)家們觀察自然界的運(yùn)行規(guī)律,總結(jié)出了兩個(gè)很牛逼的概念,一個(gè)叫“模”,一個(gè)叫“補(bǔ)數(shù)”。

3

官方術(shù)語:

“?!笔侵敢粋€(gè)計(jì)量系統(tǒng)的計(jì)數(shù)范圍,如時(shí)鐘、日歷等。計(jì)算機(jī)也可以看成一個(gè)計(jì)量機(jī)器,它也有一個(gè)計(jì)量范圍。只要有一個(gè)計(jì)量范圍,即都存在一個(gè)“?!薄?/p>

“?!睂?shí)質(zhì)上是計(jì)量器產(chǎn)生“溢出”的量,它的值在計(jì)量器上表示不出來,計(jì)量器上只能表示出模的余數(shù)。

比如:十二小時(shí)制的時(shí)鐘采用的是十二進(jìn)制來表示時(shí)間,一到了12點(diǎn),再向后就又從1開始了,所以12是時(shí)鐘系統(tǒng)的模。12是一個(gè)范圍,超過了十二一切從頭來過。

好多文章都說時(shí)鐘系統(tǒng)的計(jì)量范圍是0到11,但是沒有解釋為什么,我這邊猜測(cè)是因?yàn)闀r(shí)鐘采用的是12進(jìn)制,如果不發(fā)生進(jìn)位的話,那它就只能表示0到11這12個(gè)數(shù)。這跟我們的現(xiàn)實(shí)生活是對(duì)應(yīng)得上的,我們一般講的12點(diǎn)其實(shí)是0點(diǎn),所以12本來是在時(shí)鐘表示不出來的值,是一個(gè)溢出的量,但是為了方便人們的理解,才有了十二點(diǎn)的表示方式。

4

補(bǔ)數(shù)

民間解釋:

當(dāng)M是系統(tǒng)的模的時(shí)候,如果|A|+|B|=M,我們就說A的補(bǔ)數(shù)是B,這個(gè)概念跟補(bǔ)角的概念類似,如果兩個(gè)角相加為180°,那么稱兩個(gè)角互補(bǔ)。(實(shí)際上補(bǔ)數(shù)還有一些別的解釋,但是目前我覺得這種解釋比較合理)。

說清楚了模和補(bǔ)碼,然后最重要的一個(gè)發(fā)現(xiàn)來了,在有模的系統(tǒng)中,減去一個(gè)數(shù)等于加上它的補(bǔ)數(shù)。還是以時(shí)鐘為例:如果我們把順時(shí)針看成正,把逆時(shí)針看成負(fù),現(xiàn)在是2點(diǎn),如果想要變成1點(diǎn),可以逆時(shí)針轉(zhuǎn)一格,也可以順時(shí)針轉(zhuǎn)11格,寫成數(shù)學(xué)式子就是 2-1=2+11.

5

為什么?

除了補(bǔ)數(shù)可以解釋,還有說法是一個(gè)有模的系統(tǒng)里,如果發(fā)生數(shù)的溢出,那么溢出的這個(gè)數(shù)表示的數(shù)就是對(duì)M求模的結(jié)果(因?yàn)槲覀冎罆r(shí)鐘的取值范圍是0-11,超過了11,將又從0開始)。

2+11=1+12=1或者2+11=13 mod 12=1將時(shí)鐘遷移到計(jì)算機(jī)系統(tǒng):比如一個(gè)4位的二進(jìn)制,最多可以表示2^4=16個(gè)數(shù),最大的數(shù)是1111=15,超過1111就會(huì)發(fā)生進(jìn)位的情況,變成10000,因?yàn)橹挥兴奈唬员硎镜氖?000=0,然后再加一,變成0001=1,開始了循環(huán),那么模的值就是16這個(gè)溢出的值。

有了上面的基礎(chǔ),我們很輕松的就可以將減法直接變成加法來計(jì)算。

對(duì)于byte來說就是七位,七位正數(shù)最大的就是1111111 轉(zhuǎn)換成十進(jìn)制就是127,從 2的0次方加到2的6次方。

然后負(fù)數(shù)呢,涉及到負(fù)數(shù)的編碼方式:

這里模是256,所以10000000到11111111其實(shí)表示的范圍是-128到-1,因?yàn)?0000000是128,補(bǔ)數(shù)是-128,11111111是255,補(bǔ)數(shù)是-1。所以,byte的范圍是-128到127,一共256個(gè)數(shù)。

原文標(biāo)題:為什么Byte是從-128到127?

文章出處:【微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    38

    文章

    7366

    瀏覽量

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

    關(guān)注

    19

    文章

    7174

    瀏覽量

    87159

原文標(biāo)題:為什么Byte是從-128到127?

文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    晶體管計(jì)算機(jī)和電子管計(jì)算機(jī)有什么區(qū)別

    晶體管計(jì)算機(jī)和電子管計(jì)算機(jī)作為計(jì)算機(jī)發(fā)展史上的兩個(gè)重要階段,它們多個(gè)方面存在顯著的區(qū)別。以下是對(duì)這兩類計(jì)算機(jī)
    的頭像 發(fā)表于 08-23 15:28 ?451次閱讀

    DRAM計(jì)算機(jī)中的應(yīng)用

    DRAM(Dynamic Random Access Memory,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)計(jì)算機(jī)系統(tǒng)中扮演著至關(guān)重要的角色。它是一種半導(dǎo)體存儲(chǔ)器,用于存儲(chǔ)和快速訪問數(shù)據(jù),是計(jì)算機(jī)主內(nèi)存的主要組成部分。以下是對(duì)DRAM
    的頭像 發(fā)表于 07-24 17:04 ?457次閱讀

    工業(yè)控制計(jì)算機(jī)與普通個(gè)人計(jì)算機(jī)相比有何區(qū)別?

    引言 隨著科技的不斷發(fā)展,計(jì)算機(jī)各個(gè)領(lǐng)域的應(yīng)用越來越廣泛。眾多計(jì)算機(jī)類型中,工業(yè)控制計(jì)算機(jī)和普通個(gè)人
    的頭像 發(fā)表于 06-11 10:45 ?543次閱讀

    工業(yè)計(jì)算機(jī)與普通計(jì)算機(jī)的區(qū)別

    信息化和自動(dòng)化日益發(fā)展的今天,計(jì)算機(jī)已經(jīng)成為了我們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡墓ぞ?。然而?b class='flag-5'>在計(jì)算機(jī)領(lǐng)域中,工業(yè)計(jì)算機(jī)和普通
    的頭像 發(fā)表于 06-06 16:45 ?678次閱讀

    計(jì)算機(jī)圖形學(xué):探索虛擬世界的構(gòu)建之道

    計(jì)算機(jī)圖形學(xué)是計(jì)算機(jī)科學(xué)的一個(gè)分支,它專注于創(chuàng)建和操縱計(jì)算機(jī)生成的視覺和圖形內(nèi)容。這一領(lǐng)域涵蓋了基礎(chǔ)的二維圖形繪制復(fù)雜的三維模型構(gòu)建和渲
    的頭像 發(fā)表于 05-07 08:27 ?277次閱讀
    <b class='flag-5'>計(jì)算機(jī)</b>圖形學(xué):探索虛擬世界的構(gòu)建之道

    原子超級(jí)計(jì)算機(jī):NVIDIA與合作伙伴擴(kuò)展量子計(jì)算應(yīng)用

    量子計(jì)算領(lǐng)域的最新進(jìn)展包括分子研究、部署巨型超級(jí)計(jì)算機(jī),以及通過一項(xiàng)新的學(xué)術(shù)計(jì)劃培養(yǎng)量子從業(yè)人員。
    的頭像 發(fā)表于 03-22 10:05 ?321次閱讀

    【量子計(jì)算機(jī)重構(gòu)未來 | 閱讀體驗(yàn)】+ 了解量子疊加原理

    中的處理器(CPU)就是由許多邏輯門電路組成的。 量子計(jì)算機(jī)與電子計(jì)算機(jī)最大的區(qū)別在于它們使用量子比特(qubit)而不是電子比特(bit)來表示信息。量子計(jì)算機(jī)中,使用量子門來執(zhí)行
    發(fā)表于 03-13 17:19

    【量子計(jì)算機(jī)重構(gòu)未來 | 閱讀體驗(yàn)】+量子計(jì)算機(jī)的原理究竟是什么以及有哪些應(yīng)用

    本書內(nèi)容目錄可以看出本書主要是兩部分內(nèi)容,一部分介紹量子計(jì)算機(jī)原理,一部分介紹其應(yīng)用。 其實(shí)個(gè)人也是抱著對(duì)這兩個(gè)問題的興趣來看的。 究竟什么是量子計(jì)算機(jī)相信很多讀者都是抱著這個(gè)疑問
    發(fā)表于 03-11 12:50

    【量子計(jì)算機(jī)重構(gòu)未來 | 閱讀體驗(yàn)】+ 初識(shí)量子計(jì)算機(jī)

    欣喜收到《量子計(jì)算機(jī)——重構(gòu)未來》一書,感謝電子發(fā)燒友論壇提供了一個(gè)讓我了解量子計(jì)算機(jī)的機(jī)會(huì)! 自己對(duì)電子計(jì)算機(jī)有點(diǎn)了解,但對(duì)量子計(jì)算機(jī)真是一無所知,只是聽說過量子糾纏、超快的運(yùn)算速
    發(fā)表于 03-05 17:37

    計(jì)算機(jī)為什么利用反碼來實(shí)現(xiàn)減法?

    計(jì)算機(jī)為什么利用反碼來實(shí)現(xiàn)減法? 計(jì)算機(jī)實(shí)現(xiàn)減法運(yùn)算時(shí)利用反碼的原因可以歷史背景、計(jì)算機(jī)設(shè)計(jì)優(yōu)勢(shì)和運(yùn)算規(guī)則等方面來分析。 1. 歷史背景
    的頭像 發(fā)表于 02-19 15:10 ?537次閱讀

    微機(jī)原理和計(jì)算機(jī)組成原理的區(qū)別

    微機(jī)原理和計(jì)算機(jī)組成原理是計(jì)算機(jī)科學(xué)中兩個(gè)重要的主題,它們雖然有一定的關(guān)聯(lián),但也存在一些區(qū)別。本文將詳細(xì)闡述微機(jī)原理和計(jì)算機(jī)組成原理的區(qū)別,并從不同的角度對(duì)它們進(jìn)行分析比較。 首先,我們
    的頭像 發(fā)表于 01-14 14:56 ?2550次閱讀

    工業(yè)計(jì)算機(jī)與商用計(jì)算機(jī)的區(qū)別

    工業(yè)計(jì)算機(jī)與商用計(jì)算機(jī)的區(qū)別? 工業(yè)計(jì)算機(jī)和商用計(jì)算機(jī)是兩種應(yīng)用于不同領(lǐng)域的計(jì)算機(jī)系統(tǒng)。雖然它們
    的頭像 發(fā)表于 12-27 10:50 ?495次閱讀

    什么是后量子密碼學(xué)?量子計(jì)算機(jī)vs經(jīng)典計(jì)算機(jī)

    后量子密碼學(xué)(Post-Quantum Cryptography,PQC)是經(jīng)典計(jì)算機(jī)上定義和執(zhí)行算法,研究量子計(jì)算機(jī)和經(jīng)典計(jì)算機(jī)都無法破解的新密碼系統(tǒng)。后量子密碼學(xué)的提出是為了抵抗
    的頭像 發(fā)表于 12-19 11:42 ?1341次閱讀

    byte屬于java基本類型嗎

    位帶符號(hào)的二進(jìn)制數(shù),取值范圍為-128127。 Java中,基本數(shù)據(jù)類型與引用數(shù)據(jù)類型不同,基本數(shù)據(jù)類型是存儲(chǔ)棧內(nèi)存中的,而引用數(shù)據(jù)類
    的頭像 發(fā)表于 12-05 10:40 ?663次閱讀

    EMC磁棒計(jì)算機(jī)領(lǐng)域的應(yīng)用

    計(jì)算機(jī)硬件的開發(fā)和測(cè)試中,EMC磁棒能夠模擬不同的電磁輻射場(chǎng)景,包括靜電場(chǎng)、磁場(chǎng)、電場(chǎng)等。通過將磁棒靠近計(jì)算機(jī)硬件,開發(fā)人員可以測(cè)試硬件不同電磁環(huán)境下的輻射和敏感性能。
    的頭像 發(fā)表于 11-06 11:17 ?355次閱讀