【計算機原理篇】原碼、反碼和補碼

注意:計算機實際上是按照補碼進行存儲的,對計算機來說沒有原碼和反碼這種東西,原碼和反碼只是為了方便我們理解而定義的一種概念。

一、原碼

正數的原碼就是它本身,負數的原碼最高位為1。

如果用一個字節來存儲整數,那么20的原碼就是0001 0100,-20的原碼就是1001 0100

二、反碼

正數的反碼跟原碼一樣,負數的反碼按位取反,符號位不變。

如果用一個字節來存儲整數,那么20的反碼就是0001 0100,-20的反碼就是1110 1011

三、補碼

正數的補碼跟原碼一樣,負數的補碼是反碼加1。

如果用一個字節來存儲整數,那么20的補碼就是0001 0100,-20的補碼就是1110 1100

四、計算機為什么不用原碼和反碼,而采用補碼來計算

原因是使用原碼或者反碼計算結果是錯誤的,補碼才是正確的。

下面我們來看一下分別使用原碼、反碼和補碼進行計算的結果

1、原碼計算

? ?0001 0100(20)

+?1001 0100(-20)

-------------------------------

? ? 10101000(-40)

20和-20的和是-40,結果顯然不對

2、反碼計算

? ?0001 0100(20)

+?1111 0101(-10)

--------------------------------

? ? 0000?1001(9)

20和-10的和是9,結果顯然不對

3、補碼計算

? ?0001 0100(20)

+?1110 1100(-20)

-------------------------------

? ? 0000 0000(0)

用反碼計算的結果正確

五、為什么一個字節能表示的整數范圍是-128到-127

首先最高位為0,其他位為1,就代表最大的整數,就是0111 1111(127),那么最小的數應該是1000 0001(-127)

那么問題來了,一個字節如何表示-128?

我們結合上面的原碼、反碼和補碼知識知道,我們知道1000 0000(-0)+0111 1111(+127)=1111 1111(-1)。這種情況下我們發現補碼的計算也不準了,-0與127的和居然是-1。剛剛不是還說用補碼計算時正確的嗎?

為了解決這種特殊情況,我們認為反碼1000 0000表示的是-128,不再表示-0(-0本身也沒有意義,用0就可以了),然后1000 0000(-128)+0111 1111(+127)=1111 1111(-1),漂亮,所有情況下,補碼的計算都是正確的了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530375.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530375.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530375.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用友郵件撤回怎么操作_用戶體驗原則——“操作可控”

對于用戶的誤操作,提供二次確認或者撤銷的功能,這樣可提高用戶的操作可控性。好設計應該是值得信任,也容易被相信的。在要求用戶執行某一動作時,盡量幫他們理解為什么這個操作是必要的。每一步都需要借助誠實和清晰的表述來建立信…

蛋白結構建模與優化_最終幻想: 無中生有的蛋白質從頭設計

作者簡介: 劉源 北京大學化學與分子工程學院/力文所零.導讀近幾年,蛋白質結構預測領域連續取得重大突破。首先是【AlphaFold】,在可以充分利用共進化信息結合深度神經網絡生成空間約束條件并降低相空間的搜索,極大地幫助了蛋白質的結構建模&a…

【JAVA基礎篇】徹底搞懂拆箱裝箱

什么是裝箱拆箱? Java有8種基本數據類型,并且為這8種類型提供了包裝器類型。比如說int類型的包裝器類型是Integer。 裝箱是指將基本數據類型轉換成對應的包裝器類型。拆箱是指將包裝器類型轉換基本數據類型。 Integer i 10; //自動裝箱 int n i; …

gcn在圖像上的應用_每日摘要|基于CNN 特征的圖像卷積網絡識別雜草和作物

文章信息標題:CNN feature based graph convolutional network for weed and crop recognition in smart farming期刊:《 Computers and Electronics in Agriculture》第一單位:山東農業大學在線日期:2020-05-13Highlights1.提出了…

安卓超過兩行就加省略號_基礎標點符號使用規則詳解—8.省略號

省略號省略號,是標點符號家族中的比較特殊的一個符號,它是由六個小圓點組成。省略號的用法不止省略文字的作用。它還有以下幾種用法。1用法一(一)表示重復詞語或列舉的省略。例:1、果園里有桃樹、梨樹、杏樹、枇杷樹……真的是種類齊全。2、那…

【Java基礎篇】你真的了解構造器嗎?

構造器是方法名和類名相同,并且沒有返回值的特殊方法,可以使用的關鍵字有public, protected & private,或者省略(表示default) public class Constructor {//構造方法public Constructor(){}//實例方法public void…

【JAVA中級篇】線程池

上一篇文章已經介紹了線程的基本概念以及線程相關的API,下面來看一下線程池 一、線程池框架 1、線程池的優點 重用線程池中的線程,避免因為線程的創建和銷毀所帶來的性能開銷。 能有效控制線程池的最大并發數,避免大量線程之間因互相搶奪系…

kafka 腳本發送_Kafka筆記歸納(第五部分:一致性保證,消息重復消費場景及解決方式)...

寫在開頭:本章是Kafka學習歸納第五部分,著重于強調Kafka的事一致性保證,消息重復消費場景及解決方式,記錄偏移量的主題,延時隊列的知識點。文章內容輸出來源:拉勾教育大數據高薪訓練營。一致性保證水位標記…

【Java基礎篇】集合排序

所謂集合排序是指對集合內的元素進行排序。 集合工具類Collections中提供了兩種排序算法,分別是: Collections.sort(List list)Collections.sort(List list,Comparator c) Collections.sort(List list)這種方式需要對象實現Comparable接口,…

語言nomogram校準曲線圖_預測模型的概率校準

1.背景 機器學習分為:監督學習,無監督學習,半監督學習(也可以用hinton所說的強化學習)等。在這里,先簡要介紹一下監督學習從給定的訓練數據集中學習出一個函數(模型參數),當新的數據到來時,可以根據這個函數預測結果。監督學習的訓練集要求包括輸入輸出,也可以說是特征和…

eclipse debug 工程源碼時出現source not found問題解決

問題描述:使用eclipse debug啟動應用,并且打斷點在工程的源碼上面,提示source not found。 問題解決: 1、選中工程,右鍵Debug As》Debug Configurations 2、在Java Application下面選中需要debug的程序,然…

代碼中有個get是啥意思_是時候秀一波了,甩掉get和set,Lombok讓代碼更簡潔

前言前幾天有個新來的同事(實習生)驚訝的對我說:我們的代碼里好多錯誤,我的程序本地都啟動不了。我一臉懵逼的質問他:目前線上的代碼,怎么會有問題嗎?他不服氣的說:你來看嘛,就是有問題&#xf…

JavaWeb工程師知識圖譜

一個工作快三年的的Java菜鳥,總結梳理了一下JavaWeb工程師必須掌握的一些知識點(持續更新中。。。)。 預覽效果 xmind原始文件 百度云盤 鏈接:https://pan.baidu.com/s/1hp3MWGOX2I8APw75Suu52Q 提取碼:j6w6

【Java中級篇】基于jxl讀寫Excel文件遇到的問題

發生異常,并且提示:unable to recognize ole stream 遇到這個問題需要將Excel文件另存為Excel 97-2003(*.xls)

松下a6伺服x4接線圖_2021中山東鳳松下溫控器回收價高同行

2021中山東鳳松下溫控器回收價高同行西門子TDC,西門子存儲卡,西門子變頻器等全線西門子自動化產品。小汪 滿意的價格,快的付款速度,熱誠歡迎全國各地朋友洽談合作。具體回收業務:SIEMENS可編程控制器 1、SIMATIC,S7系列…

eclipse啟動發生Failed to load JNI shared library

今天啟動eclipse發生下面的情況 從網上知道是eclipse和jdk位數不一致導致的。 輸入java -version ,查看JDK是多少位,顯示64位的就是64位JDK,未顯示的為32位的JDK。 eclipse的安裝目錄下有一個叫eclipse.ini的配置文件,打開后能看到 x86_64說…

imx226_相機選型器

-- 全部 --AR1820HS (8)CMV2000-2E5C1PP (2)CMV2000-3E12M1PP (2)CMV2000-3E5M1PP (2)CMV4000-3E12M1PP (1)CMV4000-3E5C1PP (5)CMV4000-3E5M1PP (5)EV76C560ABT (25)EV76C560ACT (25)EV76C570ABT (23)EV76C570ACT (23)EV76C661ABT (20)IMX174LLJ-C (8)IMX174LQJ-C (8)IMX178LL…

算法的時間復雜度和空間復雜度的原理

一、算法分析 如何判斷一個算法的好壞呢?首先算法必須要正確,這是最基本的要求。其次: 算法花費的時間算法占用的空間小(輔助存儲空間)算法要容易調試,測試,理解,編碼,…

5條件篩選功能_一分鐘,徹底學會Excel高級篩選,坐等升職加薪!

Excel中高級篩選是普通篩選的加強,能夠實現更加復雜的篩選功能。請您看下面的示例圖:數據示例圖如果要求篩選出班級為2班且語文成績大于100分的數據,那么使用普通篩選連續篩選兩次就可以得到結果。請您看下面的操作演示:普通篩選操…

數據結構之樹【完善中】

一、樹的概念 樹是一種分組的層次結構。 樹的定義: 樹是n(n>0)個數據元素的集合,在任意一棵非空樹中,有如下特征 有且只有一個根結點(無前驅結點)當n>1時,其他結點被分為若干個互不相交集合,并且…