補碼

3.經常使用數值編碼

因為機器數在計算時,假設符號位和數值位同一時候參與運算,則可能會產生錯誤結果;而假設單獨考慮符號問題,又會添加運算器件的實現難度。因此,為了使計算機可以方便地對數值進行各種算術邏輯運算,必須對數值型數據進行二進制編碼處理。所謂編碼是採用少量的基本符號(如01),依照一定的組合原則,來表示大量復雜多樣的信息的技術。編碼的優劣直接影響到計算機處理信息的速度。數值型數據的經常使用編碼方法包含:原碼、反碼、補碼。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1)原碼。原碼的編碼規則是:符號位0表示正,1表示負,數值部分用該數絕對值的二進制數表示。當整數時,小數點隱含在最低位之后;當純小數時,小數點隱含在符號位和數值位之間,均不占位。通經常使用[X]表示數X的原碼。

比如,設機器字長為8位,

[+1]?=?00000001???????? [+127]?=?01111111?????? [+0]?=?00000000

[?1]?=?10000001??????? [?127]?=?11111111?????? [?0]?=?10000000

顯然,按原碼的編碼規則,零有兩種表示形式。

原碼表示法簡明易懂,與其真值的轉換方便,比較easy進行乘除運算。可是在進行加減運算時,原碼運算非常不方便。因為符號位不能和數值一樣參與運算,所以要依據兩數的符號情況,同號相加,異號相減,還要依據兩數的絕對值大小,令大數減去小數,最后還要推斷結果的符號。這樣不僅要求運算器既能作加法,又能作減法,還必須附加很多條件推斷的處理,終于既添加了運算器的實現復雜性,又延長了運算的時間。

2)反碼。反碼的編碼規則是:符號位0表示正,1表示負,正數的反碼等于原碼,負數的反碼等于原碼除符號位外按位取反,即0110。通經常使用[X]表示數X的反碼。

比如,設機器字長為8位,

[+1]?=?00000001???????? [+127]?=?01111111?????? [+0]?=?00000000?

[ 1]?=?11111110????????? [ 127]?=?10000000???? [ 0]?=?11111111

顯然,按反碼的編碼規則,零也有兩種表示形式。

反碼非常easy由原碼獲得,但相同不方便運算,一般在求補碼的過程中用到反碼。

3)補碼。補碼的編碼規則是:符號位0表示正,1表示負,正數的補碼等于原碼,負數的補碼等于反碼末位加1。通經常使用[X]表示數X的補碼。

比如,設機器字長為8位,

[+1]?=?00000001???????? [+127]?=?01111111?????? [+0]?=?00000000

[ 1]?=?11111111????????? [ 127]?=?10000001???? [ 0]?=?00000000

顯然,按補碼的編碼規則,零有惟一的表示形式。

補碼的概念來源于數學上的和補數。比如,將鐘表的時針順時針撥快5小時和逆時針撥慢7小時,最后指示的位置同樣,則稱57互為模12情況下的補數。計算機中機器數受機器字長限制,所以是有限字長的數字系統。對于整數來說,機器字長為n位(含符號位),模是2n;對于有符號純小數來說,模是2

求補運算通常利用反碼來實現。

【例】 X?=?+1011Y?=?1101的原碼、反碼和補碼。

??? [X?]?=?01011??????????????? [Y?]?=?11101

?????? [X?]?=?01011??????????????? [Y?]?=?10010

?????? [X?]?=?01011??????????????? [Y?]?=?10011

採用補碼進行加減運算十分方便。通過對負數的編碼處理,同意符號位和數值一起參與運算,能夠把減法運算轉化為加法運算。不論求和求差,也不論操作數為正為負,運算時一律僅僅做加法,從而大大簡化運算器的設計,加快了運算速度。

比如,(9)+(5)的運算例如以下:

[9]?=?11110111????????????????? 11110111

[5]?=?11111011?????????? +???? 11111011

?????????????????????????????????? ?? 111110010

由于機器字長的限制,丟失高位1,運算結果機器數為11110010,是14的補碼形式。

眼下,因為計算機中最多的運算是加減運算,為了簡化運算器設計,加快運算速度,有些計算機在數值表示、存儲、運算時均採用補碼表示法,也有些計算機,數用原碼進行存儲和傳送,運算時採用補碼,還有些計算機在進行加減法時採用補碼運算,而在進行乘除法時採用原碼運算。

4.精度和溢出

現代數字計算機是有限字長的數字系統,機器數表示的范圍受到機器字長和數據類型的限制,一旦機器字長和數據類型確定了,機器數所能表示的數的范圍和精度也就確定了。所謂精度,是指能夠給出的有效數字的位數。一般來說,機器字長越長,能夠表示的數的范圍越大,精度越高;當字長同樣時,浮點數通常比整數能夠表示的數的范圍要大;浮點數表示時,階碼位數越多,能夠表示的數的范圍越大,尾數位數越多,能夠表示的數的精度越高。

假設一個數的大小超出了計算機所能表示的數的范圍,則產生溢出。假設兩個正數相加,結果大于機器所能表示的最大正數,稱為上溢;假設兩個負數相加,結果小于機器所能表示的最小負數,稱為下溢。比如,字長為n位的有符號整數,最高1位為符號位,數值位為n1位,用補碼表示時,數的表示范圍為2n–1~2n–11,一旦運算時發生結果超出此范圍的情況,就產生溢出。

轉載于:https://www.cnblogs.com/yxwkf/p/4089601.html

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

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

相關文章

置頂 | wolai博客

最近用wolai記錄筆記較多&#xff0c;這里放一下我wolai的地址&#xff0c;當然csdn這邊也會同時更文。 hanhan的博客

深入研究Clang(四) Clang編譯器的簡單分析

作者&#xff1a;史寧寧&#xff08;snsn1984&#xff09;首先我們確定下Clang編譯器的具體內容和涵蓋范圍。之前在《LLVM每日談之二十 Everything && Clang driver 》中曾經提到過&#xff0c;Clang driver&#xff08;命令行表示是clang&#xff09;和Clang前端&…

Expression Trees 參數簡化查詢

ASP.NET MVC 引入了 ModelBinder 技術&#xff0c;讓我們可以在 Action 中以強類型參數的形式接收 Request 中的數據&#xff0c;極大的方便了我們的編程&#xff0c;提高了生產力。在查詢 Action 中&#xff0c;我們可以將 Expression Trees 用作參數&#xff0c;通過自定義的…

為你的程序添加監聽器

平時在寫程序時經常會遇到監聽器&#xff0c;比如按鈕的click監聽器&#xff0c;按鍵監聽器等等。而android中的監聽器和java中的回調函數是同一個概念&#xff0c;都是在底層代碼中定義一個接口來調用高層的代碼。那么什么是回調函數呢&#xff1f;網上說的是“在WINDOWS中&am…

圖像處理

android圖像處理系列之四&#xff0d;&#xff0d;給圖片添加邊框&#xff08;上&#xff09; http://www.oschina.net/question/157182_40586 android圖像處理系列之六&#xff0d;&#xff0d;給圖片添加邊框&#xff08;下&#xff09;&#xff0d;圖片疊加 http://www.osc…

Git push 時每次都需要密碼的疑惑

2015.1.13更新&#xff1a; 在本地搭建Git服務器時&#xff0c;也是有每次操作需要密碼的情況。 是因為每次做推送動作時&#xff0c;Git需要認證你是好人。所以需要密碼。 可以在 /home/username/.ssh/authorized_keys 文件里添加你的 ssh 公鑰。一行一個。這樣就可以在你push…

ruby字符串處理

1. str"abc123"puts str[0].chr > a puts str[0] >a的ascii碼 2.中文字符串的正則表達式 文本編碼:utf-8 文件第一行&#xff1a;#encoding:urf-8 require "iconv" str"八萬"reg/(.)萬/datareg.match(str)result Iconv.i…

PHP+七牛云存儲上傳圖片代碼片段

2014年11月14日 16:37:51 第一段代碼是上傳單個圖片的,第二個是上傳多個圖片的 1 //上傳到七牛2 //單個文件3 //formname: 表單名字; pre: 圖片Url中顯示的圖片名字(也就是七牛中的key)4 public function upImage($formname, $pre)5 {6 if (empty($_FI…

【PS】Gold words tutorials 赤金字教程

material_01material_021. White background and black words.The font of "Laker" is Teenick, and "Huang" is 中國龍粗魏碑2.Open material_01 and select a part of it.Copy and paste the part part into our workspace.You can drag and move to pa…

iOS 鍵盤的關閉

iOS 鍵盤的關閉 //通過委托來放棄 “第一響應者” #pragma mark - UITextField Delegate Method -(BOOL)textFieldShouldReturn:(UITextField*)textField {[textField resignFirstResponder];return YES; } //通過委托來放棄 “第一響應者” #pragma mark - UITextView Delegat…

遞歸與分治

今天總算把第三章遞歸與分治看完了&#xff0c;呵呵&#xff0c;沒想到開頭就給我來了點打擊&#xff0c;看以后不認真學還真不行了&#xff01; 為了祝賀初戰告捷&#xff0c;把幾個簡單的題目貼上來吧&#xff0c;紀念一下&#xff01; 《整數因子分解》 大于1的正整數n可以分…

Android中的Handler機制

直接在UI線程中開啟子線程來更新TextView顯示的內容&#xff0c;運行程序我們會發現&#xff0c;如下錯 誤&#xff1a;android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.翻譯過來就是&…

初來乍到

從今天開始&#xff0c;我也加入博客園這個大家庭了&#xff0c;希望能和大家一起學習IT技術&#xff0c;共同進步。小弟初來乍到&#xff0c;望大家能多多關照&#xff01;轉載于:https://www.cnblogs.com/markwave/p/3227777.html

JQuery學習四(過濾選擇器)

&#xff1a;first選擇第一個元素。$&#xff08;“div:first”&#xff09;進行選擇第一個<div> :last 選擇最后一個最后一個元素 $&#xff08;"div:last"&#xff09;選取最后一個<div> [:not(選擇器&#xff09;] 選擇不滿足“選擇器”條件的元素 $…

160 - 1 Acid burn

環境&#xff1a;Windows XP sp3 先打開&#xff0c;看看長什么樣&#xff1a; OD載入&#xff0c;右鍵->查找->所有參考文本字串 找到Sorry,The serial is incorect 找到后就在反匯編窗口跟隨&#xff0c;往上翻&#xff1a; 0042F998 /. 55 push ebp 0…

跟樹有關的數據結構學習系列之概覽

1.Binary Search Tree&#xff08;BST&#xff09; 二叉搜索樹 2.B-Tree 3.BTree 4.B*Tree轉載于:https://www.cnblogs.com/devindong/p/3233041.html

在社會實踐中長本領

暑假回到家&#xff0c;家里要我在自家店里幫忙&#xff0c;做員工。因為我家跟舅舅家合資開了一家家禽凍品批發部&#xff0c;生意興旺&#xff0c;越做越大&#xff0c;忙得不可開交。在自家店里做員工&#xff0c;當然&#xff0c;家里人都很高興&#xff0c;我也樂意。在員…

Animating Layout Changes(展開收起)

原文地址&#xff1a;https://developer.android.com/training/animation/layout.html#add &#xff08;1&#xff09;設置布局文件&#xff1a; <LinearLayout android:id"id/container"android:animateLayoutChanges"true"... /> &#xff08;2&am…

160 - 2 Afkayas.1

環境&#xff1a; Windows Xp sp3 OD載入&#xff1a; 運行&#xff0c;然后輸入&#xff1a; 然后回到OD&#xff0c;按F12來暫停&#xff0c; 然后ALTF9回到程序領空&#xff0c;把彈出的那個錯誤消息框點掉&#xff0c;這時OD來到這里&#xff1a; 004025F9 . 68 E81…

POJ 2125 Destroying The Graph (二分圖最小點權覆蓋集+輸出最小割方案)

題意 有一個圖&#xff0c; 兩種操作&#xff0c;一種是刪除某點的所有出邊&#xff0c;一種是刪除某點的所有入邊&#xff0c;各個點的不同操作分別有一個花費&#xff0c;現在我們想把這個圖的邊都刪除掉&#xff0c;需要的最小花費是多少。 思路 很明顯的二分圖最小點權覆蓋…