精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

計算機(jī)為什么使用補(bǔ)碼的形式來表示負(fù)數(shù)

Wildesbeast ? 來源:今日頭條 ? 作者:算法集市 ? 2020-02-12 15:28 ? 次閱讀

計算機(jī)有三種編碼方式來表示同一個數(shù):

原碼:符號位加上真值的絕對值,第一位表示符號,其余位表示值。

反碼:正數(shù)的反碼是其本身;負(fù)數(shù)的反碼是在其原碼的基礎(chǔ)上,符號位不變,其余位取反。

補(bǔ)碼:正數(shù)的補(bǔ)碼還是其本身;負(fù)數(shù)的補(bǔ)碼是在其原碼的基礎(chǔ)上,符號位保持不變,其余位取反,最后+1。即反碼加1。

對于+1和-1,

[+1] = [0001]原 = [0001]反 = [0001]補(bǔ)

[-1] = [1001]原 = [1110]反 = [1111]補(bǔ)

為什么計算機(jī)采用補(bǔ)碼的形式來表示負(fù)數(shù)呢?

首先我們知道,一個數(shù)在計算機(jī)中有正負(fù)之分,這個數(shù)的最高位(符號位)用來表示它的正負(fù),其中0表示正數(shù),1表示負(fù)數(shù)。

對于計算機(jī)來說,加法是最基礎(chǔ)的運(yùn)算,要設(shè)計的盡量簡單。

根據(jù)加法的運(yùn)算法則,a-b等于a+(-b)。

如果能將符號位也參與到運(yùn)算中,而非單獨“辨識符號位”,就可以大大簡化計算機(jī)的基礎(chǔ)電路。

于是,人們開始探索只保留加法,并將符號位參與到運(yùn)算中的方法。

1、原碼:1 - 1 = 0

首先來看原碼:1 - 1 = 0

1 - 1 = 1 + (-1)

= [0001]原 + [1001]原

= [1002]原

= -2

這顯然是錯誤的。

2、反碼:1 - 1 = 0

對于反碼:

1 - 1 = 1 + (-1)

= [0001]反 + [1110]反

= [1111]反

= [1000]原

= -0

用反碼進(jìn)行計算,發(fā)現(xiàn)結(jié)果是對的。但有一個問題是“0”的表示有兩個:

-0([1000])

+0([0000])

而0帶符號是沒有意義的。

且采用補(bǔ)碼形式,對于4位的二進(jìn)制,其表達(dá)的范圍為:[1000]反~[0111]反,即[1111]原~[0111]原,也即[-7,7]。

因為“0”有兩個編碼形式,所以等于浪費(fèi)了一個編碼。

3、補(bǔ)碼:1 - 1 = 0

而補(bǔ)碼解決了反碼的問題:

1 - 1 = 1 + (-1)

= [0001]補(bǔ) + [1111]補(bǔ)

= [0000]補(bǔ)

= [0000]原

= 0

使用補(bǔ)碼, 不僅僅解決了0的符號以及存在兩個編碼的問題,而且還能夠用[1000]來表示-8,即多表示一個最低數(shù)。

即對于4位的二進(jìn)制,使用原碼或反碼表示的范圍為[-7,+7],而使用補(bǔ)碼表示的范圍為[-8,7]。

因為計算機(jī)采用補(bǔ)碼來表示負(fù)數(shù),所以對于編程中常用到的32位int類型,可以表示范圍是:[-2^31,2^31-1] 。

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

    關(guān)注

    2

    文章

    794

    瀏覽量

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

    關(guān)注

    19

    文章

    7421

    瀏覽量

    87718
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    935

    瀏覽量

    54764
收藏 人收藏

    評論

    相關(guān)推薦

    計算機(jī)中原碼,反碼,補(bǔ)碼之間的關(guān)系

    首先提幾個概念: 原碼,反碼,補(bǔ)碼     原碼是什么?      原碼就是早期用來表示數(shù)字的一種方式: 一個正數(shù),轉(zhuǎn)換為二進(jìn)制位就是這個正數(shù)的原碼。負(fù)數(shù)的絕對值轉(zhuǎn)換成二進(jìn)制位然后在高位補(bǔ)1就是這個
    發(fā)表于 09-17 10:00

    原碼反碼補(bǔ)碼的詳細(xì)理解

    `一. 機(jī)器數(shù)和真值在學(xué)習(xí)原碼, 反碼和補(bǔ)碼之前, 需要先了解機(jī)器數(shù)和真值的概念.1、機(jī)器數(shù)一個數(shù)在計算機(jī)中的二進(jìn)制表示形式,叫做這個數(shù)的機(jī)器數(shù)。機(jī)器數(shù)是帶符號的,在
    發(fā)表于 11-16 15:32

    補(bǔ)碼是什么 補(bǔ)碼和原碼的轉(zhuǎn)化

    計算機(jī)中的有符號數(shù)有三種表示方法,即原碼、反碼和補(bǔ)碼。三種表示方法均有符號位和數(shù)值位兩部分,符號位都是用0表示“正”,用1
    發(fā)表于 12-11 17:45

    單片機(jī)的重要功能/組成

    的數(shù)均用補(bǔ)碼表示(正數(shù)因形式一致,可認(rèn)為即用原碼表示),運(yùn)算結(jié)果也是補(bǔ)碼.2. 微型計算機(jī)原理馮諾依曼結(jié)構(gòu):
    發(fā)表于 11-18 08:49

    計算機(jī)的原碼與反碼及其補(bǔ)碼是干啥的?

    。  計算機(jī)存儲數(shù)據(jù)使用補(bǔ)碼而不是直接用二進(jìn)制,因為二進(jìn)制不能表示負(fù)數(shù)。  原碼雖然能表示負(fù)數(shù)
    發(fā)表于 04-13 17:04

    補(bǔ)碼加法,補(bǔ)碼加法計算原理

    補(bǔ)碼加法,補(bǔ)碼加法計算原理    負(fù)數(shù)補(bǔ)碼表示后,可以和正數(shù)一樣來處理。這樣,運(yùn)算器里只需要一個加法器就可以了,不必為了
    發(fā)表于 04-13 11:41 ?1.8w次閱讀

    深入探求反碼和補(bǔ)碼

    ! 希望本文對大家學(xué)習(xí)計算機(jī)基礎(chǔ)有所幫助! 一、機(jī)器數(shù)和真值 在學(xué)習(xí)原碼, 反碼和補(bǔ)碼之前, 需要先了解機(jī)器數(shù)和真值的概念。 1、機(jī)器數(shù) 一個數(shù)在計算機(jī)中的二進(jìn)制表示
    的頭像 發(fā)表于 09-15 15:23 ?1290次閱讀

    關(guān)于二進(jìn)制表示補(bǔ)碼計算的來龍去脈

    既簡單、又強(qiáng)大的數(shù)字。但是大部分人,對于二進(jìn)制、二進(jìn)制計算、原碼、反碼以及補(bǔ)碼的認(rèn)識,仍處于機(jī)械的強(qiáng)制記憶階段。尤其是對一些編碼和計算,仍然處于模糊的認(rèn)識階段,例如: CPU 是如何表示
    的頭像 發(fā)表于 06-07 14:30 ?2458次閱讀

    計算機(jī)為什么要使用補(bǔ)碼

    ,增加了計算的時間,能不能用加法器實現(xiàn)減法器的功能?這個實現(xiàn)的過程就用到了補(bǔ)碼計算機(jī)為什么使用補(bǔ)碼?采用補(bǔ)碼可以簡化
    的頭像 發(fā)表于 09-12 16:06 ?7532次閱讀

    計算機(jī)中的負(fù)數(shù)要用補(bǔ)碼表示

    一個數(shù)在計算中的二進(jìn)制表示形式,叫做這個數(shù)的機(jī)器數(shù),機(jī)器數(shù)是帶符號的,正數(shù)為0,負(fù)數(shù)為1。
    的頭像 發(fā)表于 03-30 09:59 ?2840次閱讀
    <b class='flag-5'>計算機(jī)</b>中的<b class='flag-5'>負(fù)數(shù)</b>要用<b class='flag-5'>補(bǔ)碼</b><b class='flag-5'>來</b><b class='flag-5'>表示</b>?

    計算機(jī)組成原理——數(shù)值型數(shù)據(jù)的表示

    計算機(jī)中,無論是何種形式的數(shù)據(jù)均采用數(shù)字化形式表示,即用“0”、“1”兩個基本符號構(gòu)成的編碼表示,以便采用數(shù)字電路實現(xiàn)其存儲與處理。
    的頭像 發(fā)表于 05-25 16:05 ?5069次閱讀
    <b class='flag-5'>計算機(jī)</b>組成原理——數(shù)值型數(shù)據(jù)的<b class='flag-5'>表示</b>

    FPGA有符號數(shù),定點小數(shù)表示計算機(jī)數(shù)值表示規(guī)則

    計算機(jī)體系中,計算機(jī)并不認(rèn)識負(fù)數(shù),那么計算機(jī)是如何表示負(fù)數(shù)呢?
    發(fā)表于 06-16 15:34 ?2337次閱讀
    FPGA有符號數(shù),定點小數(shù)<b class='flag-5'>表示</b>及<b class='flag-5'>計算機(jī)</b>數(shù)值<b class='flag-5'>表示</b>規(guī)則

    計算機(jī)原碼、反碼、補(bǔ)碼的概念

    計算機(jī)內(nèi)部數(shù)值是以補(bǔ)碼的方式進(jìn)行存儲的,采用補(bǔ)碼進(jìn)行數(shù)據(jù)存儲當(dāng)然有其優(yōu)點,下面會一一介紹相關(guān)內(nèi)容,讓各位徹底弄懂原碼、反碼、補(bǔ)碼的概念以及為什么采用
    的頭像 發(fā)表于 01-09 12:25 ?3755次閱讀
    <b class='flag-5'>計算機(jī)</b>原碼、反碼、<b class='flag-5'>補(bǔ)碼</b>的概念

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

    元器件的限制。當(dāng)時,計算機(jī)的電路設(shè)計主要采用位操作(二進(jìn)制)實現(xiàn)。為了能夠有效地表示負(fù)數(shù),人們引入了反碼的概念。使用反碼可以使計算機(jī)系統(tǒng)在
    的頭像 發(fā)表于 02-19 15:10 ?789次閱讀

    二進(jìn)制補(bǔ)碼及與原碼的互相轉(zhuǎn)換方法

    表示負(fù)數(shù)。其余位表示數(shù)值的大小。 二進(jìn)制補(bǔ)碼?是一種用于表示有符號整數(shù)的二進(jìn)制編碼方式,常用于?計算機(jī)
    的頭像 發(fā)表于 09-19 22:25 ?380次閱讀