《程式設計導論(Java) 0 1 2 二進位制補碼》

2021-06-22 14:22:40 字數 902 閱讀 6771

相關:馮•諾伊曼體系結構 位運算。

p6:【馮•諾伊曼體系結構計算機使用二進位制。人類之所以習慣十進位制,據說是因為用手指頭來計算比較方便,而人正好有10個指頭。】

本節只有2面(即page6和p7)紙。雖然二進位制補碼屬於每個程式設計師都應該熟練掌握的內容,但通常安排同學們自學。

重點要理解:為什麼要採用補碼?

【2.負數問題

將10進製數轉換為二進位制數時,負數如何在二進位制中表達呢?為了講解的方便,這裡使用半個位元組(nibble)即4位為資料長度。

將最高位作為符號位是自然的想法。通常以0表示正、1表示負。去掉符號位後,正數就剩下的3位來表示0~7,0b0000~0b0111等稱為原碼。對於負數有一種簡單但有問題的表示方式:符號加絕對值,如圖0-4中間一列所示。

圖 0‑4 補碼

它有兩個問題(下面的01串不是正規的二進位制表示,因而不加字首0b):

6-3 = 0110 + 1011 = 0001 = 1;

-3-2= 1011 + 1010 = 0101(有溢位) = 5

為了解決這些問題,電腦科學中,以二進位制補碼(the two』s complement)來編碼數值。

負數的補碼演算法:將對應的正數每位取反,然後最低位加1。

例如求-5的補碼如下:

對應的正數: 0b0101

每位取反:   0b1010

最低位加1:   0b1011

要求完成:

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

java學習 二進位制

二進位制 用16進製制簡化二進位制的書寫,4位二進位制數可用一位16進製制數表示,例如 二進位制 1110 1111 1101 16進製制 efd int資料型別最高為表示符號位,1為負,0為正 拿byte型別舉例,byte佔乙個位元組,8位,表示的數值範圍 128 127 byte最大數 0111...

JAVA與二進位制

system.out.println 51 7 如上 的結果是 3 答案 00000000 00000000 00000000 00110011 00000000 00000000 00000000 00000111 2進製 計算機內部 只有 2進製資料。任何資訊都必須轉換為2進製,再由計算機處理。...