資訊學C 教程 4 計算機內的資料編碼

2022-09-05 13:27:09 字數 1371 閱讀 3228

​ 乙個數在計算機中的二進位制表示形式, 叫做這個數的機器數。機器數是帶符號的,在計算機用乙個數的最高位存放符號, 正數為0, 負數為1.

比如,十進位制中的數 +3 ,計算機字長為8位,轉換成二進位制就是00000011。如果是 -3 ,就是 10000011 。

​ 那麼,這裡的 00000011 和 10000011 就是機器數。

​ 因為第一位是符號位,所以機器數的形式值就不等於真正的數值。例如上面的有符號數 10000011,其最高位1代表負,其真正數值是 -3 而不是形式值131(10000011轉換成十進位制等於131)。所以,為區別起見,將帶符號位的機器數對應的真正數值稱為機器數的真值。

​ 例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1

​ 原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值. 比如如果是8位二進位制:

​ [+1]原 = 0000 0001 [-1]原 = 1000 0001

​ 第一位是符號位. 因為第一位是符號位, 所以8位二進位制數的取值範圍就是:[1111 1111 , 0111 1111] 即 [-127 , 127]

反碼的表示方法是:

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

補碼的表示方法是:

[+1] = [00000001]原 = [00000001]反 = [00000001]補

[-1] = [10000001]原 = [11111110]反 = [11111111]補

7610 =[ ]原始碼=[ ]反碼=[ ]補碼

-610 =[ ]原始碼=[ ]反碼=[ ]補碼

-9610 =[ ]原始碼=[ ]反碼=[ ]補碼

-10110 =[ ]原始碼=[ ]反碼=[ ]補碼

-7310 =[ ]原始碼=[ ]反碼=[ ]補碼

讓符號位參與運算

反碼讓整數的減法可以用加法完成

1-1=1+(-1)=[0000 0001]原+[1000 0001]原=[0000 0001]反+[1111 1110]反=[1111 1111]反=[1000 0000]原=-0

補碼解決了0的符號問題與兩個0編碼的問題

1-1=1+(-1)=[0000 0001]原+[1000 0001]原=[0000 0001]補+[1111 1111]補=[0000 0000]補=[0000 0000]原

C 獲取計算機內部資訊

computerinfohelper.cs 計算機資訊助手類 public class computerinfohelper catch exception e managementbaseobjectpropertyname.cs namespace wen.helpers.common.comp...

C 獲取計算機內部資訊

computerinfohelper.cs 計算機資訊助手類 public class computerinfohelper catch exception e managementbaseobjectpropertyname.cs namespace wen.helpers.common.comp...

資訊學奧賽系列教程 計算機文化基礎一

在資訊學奧賽中,會考查計算機基礎知識和常用軟體的操作常識,相關的知識都包含在計算機文化基礎課程中,本系列課程根據歷年考試的題目分析,精簡出需要考查的知識點一一列出。馮 諾依曼,著名匈牙利裔美籍數學家 計算機科學家 物理學家和化學家 馮 諾伊曼對世界上第一台電子計算機eniac 電子數字積分計算機 的...