數據結構之----原碼、反碼、補碼

數據結構之----原碼、反碼、補碼

什么是原碼?

原碼:我們將數字的二進制表示的最高位視為符號位,其中 0 表示正數,1 表示負數,其余位表示數字
的值。

什么是反碼?

反碼:正數的反碼與其原碼相同,負數的反碼是對其原碼除符號位外的所有位取反。

什么是補碼?

補碼:正數的補碼與其原碼相同,負數的補碼是在其反碼的基礎上加 1 。

下圖是原碼、反碼和補碼之間的轉換方法。

在這里插入圖片描述

為什么要使用原碼?

眾所周知,計算機所能讀懂的語言是二進制編碼,而二進制編碼就是我們這里所說的原碼

為什么要使用反碼?

原碼雖然說很直觀,但是它也會存在一些局限性。如,負數的原碼是不能直接的用于運算的
例:1+(-2),得到的結果是 -3 并不是 -1,這明顯是錯誤的。
在這里插入圖片描述
所以,為了解決這類問題,計算機引入了反碼。如果說我們先將原碼轉為反碼,在計算完1+(-2)后,再將結果轉換為原碼,那么得出的就是正確的結果 -1。
在這里插入圖片描述

為什么要使用補碼?

在原碼中,我們都知道數字零有兩種表達方式+0 和 ?0 ,但是這意味著0是兩個不同的二進制編碼,它可能會帶來歧義。如在判斷條件中,如果沒有正確區分 +0和- 0,就會導致判斷錯誤。
而如果需要正確的對0進行區分就要進行額外的操作,但是這種操作可能會降低計算機的效率。

在這里插入圖片描述
并且反碼和原碼一樣,也會存在這個問題,所以為了解決這個問題,計算機引入了補碼。

下面是負零的原碼、反碼、補碼的轉換過程:
在這里插入圖片描述
轉換原理是在反碼的基礎上加一,而加一這個操作會產生進位,但是byte類型的長度只有8bite,所以溢出的第九位的 1會被舍棄。
也就是說 負零的補碼為 0000 0000 ,與正零的補碼相同。這意味著在補碼表示中只存在一個零,
正負零歧義從而得到解決。

為什么byte的取值區間為[-128,+127]?

我們注意到,區間 [?127, +127] 內的所有整數都有對應的原碼、反碼和補碼,并且原碼和補碼之間是可以互相轉換的。然而,補碼 1000 0000 是一個例外,它并沒有對應的原碼。

根據上面提到的轉換方法我們可以算出 1000 0000的原碼是 0000 0000
這顯然是不對的,因為該原碼表示數字 0 ,它的補碼應該是自身 0。
所以計算機將這個特殊的補碼 1000 0000 代表 -128

實際上,(?1) + (?127) 在補碼下的計算結果就是 ?128 。
在這里插入圖片描述

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

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

相關文章

網絡攻擊(二)--情報搜集階段

4.1. 概述 在情報收集階段,你需要采用各種可能的方法來收集將要攻擊的客戶組織的所有信息,包括使用社交網絡、Google Hacking技術、目標系統踩點等等。 而作為滲透測試者,你最為重要的一項技能就是對目標系統的探查能力,包括獲知…

文生圖:AE/VAE/VQVAE/VQGAN/DALLE模型

文生圖模型演進:AE、VAE、VQ-VAE、VQ-GAN、DALL-E 等 8 模型本文中我們回顧了 AE、VAE、VQ-VAE、VQ-VAE-2 以及 VQ-GAN、DALL-E、DALL-E mini 和 CLIP-VQ-GAN 等 8 中模型,以介紹文生圖模型的演進。https://mp.weixin.qq.com/s/iFrCEpAJ3WMhB-01lZ_qIA 1…

pta模擬題(7-38 完全二叉樹的層序遍歷)

一個二叉樹,如果每一個層的結點數都達到最大值,則這個二叉樹就是完美二叉樹。對于深度為 D 的,有 N 個結點的二叉樹,若其結點對應于相同深度完美二叉樹的層序遍歷的前 N 個結點,這樣的樹就是完全二叉樹。 給定一棵完全…

GaussDB數據庫語法及gsql入門

一、GaussDB數據庫語法入門 之前我們講了如何連接數據庫實例,那連接數據庫后如何使用數據庫呢?那么我們今天就帶大家了解一下GaussDB,以下簡稱GaussDB的基本語法。 關于如何連接數據庫,請戳這里。 學習本節課程之后&#xff0c…

【開題報告】基于SpringBoot的消防知識科普平臺的設計與實現

1.選題背景 消防知識科普平臺的設計與實現是為了提高公眾對于消防安全的認知和應對能力,促進社會消防文化的普及和發展。在中國,火災事故時有發生,造成了重大人員傷亡和財產損失。因此,建立一個基于Spring Boot的消防知識科普平臺…

docker---網絡

docker的網絡模式: 1、橋接模式:創建docker時不需要指定網絡類型,默認模式。 2、host模式: 容器將不會虛擬出自己的網卡,也沒有自己的ip地址,全部使用宿主機的ip和端口。 3、container模式:容器和容器之間…

第五屆計算機能力挑戰賽國賽C語言組題解(專科組)

前言: ??前兩天計算機能力挑戰賽國賽結束了,拿著題做了一遍,發現難度真的不大,比省賽簡單多了,只是有時候可能有的同學拿著題,沒認真仔細去讀,或者說緊張了導致自己發揮不好吧。以下是個人的題…

【運維】將Linux的硬盤當內存用,Linux內存不夠用的時候如何用硬盤提升內存

文章目錄 內存不夠用,可以用硬盤當內存嗎如何取消這種交換空間交換空間是優先使用的還是說原始內存是會被優先使用的 內存不夠用,可以用硬盤當內存嗎 是的,可以使用硬盤作為虛擬內存來擴展容器中的內存。這個過程被稱為“交換”或“交換空間…

Django 模型操作-分頁(七)

一、連接MySql數據庫 1、先安裝MySQL 2、再安裝MySQL驅動 使用mysqlclient pip install mysqlclient 如果上面的命令安裝失敗, 則嘗試使用國內豆瓣源安裝: pip install -i https://pypi.douban.com/simple mysqlclient 二、在settings.py中配置 三、 book表的數據…

Android系統啟動過程-uBoot+Kernel+Android

摘要:本文是參考大量網上資源在結合自己查看源代碼總結出來的,讓自己同時也讓大家加深對Android系統啟動過程有一個更加深入的了解!再次強調,本文的大多數功勞應歸功于那些原創者們,同時一些必要的參考鏈接我會一一附上…

1009 說反話

給定一句英語,要求你編寫程序,將句中所有單詞的順序顛倒輸出。 輸入格式: 測試輸入包含一個測試用例,在一行內給出總長度不超過 80 的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小…

【機器學習實訓項目】黑色星期五畫像分析

目錄 前言 一、項目概述 1.1 項目簡介 1.2 項目背景 1.3 項目目標 二、數據分析 2.1 導入庫 2.2 數據基本信息 三、畫像分析 3.1 畫像1:消費金額Top10 3.2 畫像2:高頻消費Top10 3.3 畫像3:人均消費金額Top10 3.4 畫像4:男女消費對…

創投課程第四期 | Web3一級市場投資框架的演變及投資人能力框架的構成

協會邀請了來自Zonff Partners的合伙人——Colin,作為VC創投課程第4期的嘉賓,在北京時間12月9日(周六)下午14:00 PM-15:00 PM于螞蟻鏈科技產業創新中心進行線下分享,屆時將與所有對Web3投資、創業心懷熱忱的朋友們共同探討《WEB3一級市場投資…

雙向鏈表(數據結構與算法)

???????????????? ???????????????? 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

程序啟動時訪問了未初始化的類指針引發內存訪問違例導致程序崩潰的問題排查

目錄 1、問題說明 2、使用Windbg動態調試去初步分析 3、使用Windbg詳細分析 4、最后 VC常用功能開發匯總(專欄文章列表,歡迎訂閱,持續更新...)https://blog.csdn.net/chenlycly/article/details/124272585C軟件異常排查從入門…

20、XSS——XSS跨站腳本

文章目錄 一、XSS漏洞概述1.1 XSS簡介 二、XSS漏洞分類2.1 反射型XSS2.2 存儲型XSS2.3 DOM型XSS 三、XSS payload構造以及變形3.1 XSS payload構造3.2 XSS payload 變形 一、XSS漏洞概述 1.1 XSS簡介 XSS被稱為跨站腳本攻擊(Cross-site scripting)&…

linux dpdk 介紹

DPDK(Data Plane Development Kit)是一個由英特爾發起的開源項目,旨在提供一個快速、高性能的數據平面開發工具包,使網絡應用能夠在通用處理器上實現網絡功能虛擬化(NFV)和軟件定義網絡(SDN&…

k8s volumes and data

Overview 傳統上,容器引擎(Container Engine)不提供比容器壽命更長的存儲。由于容器被認為是瞬態(transient)的,這可能會導致數據丟失或復雜的外部存儲選項。Kubernetes卷共享 Pod 生命周期,而不是其中的容器。如果容器終止,數據…

排序的簡單理解(上)

1. 排序的概念及引用 1.1 排序的概念 排序:所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作(按照我們的需求能夠有序的將數據信息排列起來)。 穩定性:假…

TeeChart.NET 2023.11.17 Crack

.NET 的 TeeChart 圖表控件提供了一個出色的通用組件套件,可滿足無數的圖表需求,也針對重要的垂直領域,例如金融、科學和統計領域。 數據可視化 數十種完全可定制的交互式圖表類型、地圖和儀表指示器,以及完整的功能集&#xff0c…