當前位置:首頁 » 操作系統 » X和源碼

X和源碼

發布時間: 2022-05-12 01:13:03

❶ 什麼是一個數的原碼,反碼,補碼

基本概念
在計算機內部表示二進制數的方法稱為數值編碼,把一個數及其符號在機器中的表示加以數值化,稱為機器數。機器數所代表的數稱為數的真值。 表示一個機器數,應考慮以下三個因素:
1.機器數的范圍
字長為8位,無符號整數的最大值是(11111111)B=(255)D,此時機器數的范圍是0~255。
字長為16位,無符號整數的最大值是
(1111111111111111)B=(FFFF)H=(65535)D 此時機器數的范圍是0~65535。
2.機器數的符號
在算術運算中,數據是有正有負的,將這類數據稱為帶符號數。
為了在計算機中正確地表示帶符號數,通常規定每個字長的最高位為符號位,並用0表示正數,用1表示負數。
3.機器數中小數點的位置
在機器中,小數點的位置通常有兩種約定:
一種規定小數點的位置固定不變,這時的機器數稱為「定點數」。
另一種規定小數點的位置可以浮動,這時的機器數稱為「浮點數」。
4.原碼
正數的符號位為0,負數的符號位為1,其它位按照一般的方法來表示數的絕對值。用這樣的表示方法得到的就是數的原碼。
【例1】當機器字長為8位二進制數時:
X=+1011011 [X]原碼=01011011
Y=+1011011 [Y]原碼=11011011
[+1]原碼=00000001 [-1]原碼=10000001
[+127]原碼=01111111 [-127]原碼=11111111
原碼表示的整數范圍是:
-(2n-1-1)~+(2n-1-1),其中n為機器字長。
則:8位二進制原碼表示的整數范圍是-127~+127
16位二進制原碼表示的整數范圍是-32767~+32767
5.反碼
對於一個帶符號的數來說,正數的反碼與其原碼相同,負數的反碼為其原碼除符號位以外的各位按位取反。【例2.14】當機器字長為8位二進制數時:
X=+1011011 [X]原碼=01011011 [X]反碼=01011011
Y=-1011011 [Y]原碼=11011011 [Y]反碼=10100100
[+1]反碼=00000001 [-1]反碼=11111110
[+127]反碼=01111111 [-127]反碼=10000000
負數的反碼與負數的原碼有很大的區別,反碼通常用作求補碼過程中的中間形式。 反碼表示的整數范圍與原碼相同。
6.補碼
正數的補碼與其原碼相同,負數的補碼為其反碼在最低位加1。

【例2】(1)X=+1011011 (2) Y=-1011011
(1)根據定義有: [X]原碼=01011011 [X]補碼=01011011
(2) 根據定義有: [Y]原碼=11011011 [Y]反碼=10100100
[Y]補碼=10100101
補碼表示的整數范圍是-2n-1~+(2n-1-1),其中n為機器字長。
則:8位二進制補碼表示的整數范圍是-128~+127
16位二進制補碼表示的整數范圍是-32768~+32767
當運算結果超出這個范圍時,就不能正確表示數了,此時稱為溢出。
7.補碼與真值之間的轉換
正數補碼的真值等於補碼的本身;負數補碼轉換為其真值時,將負數補碼按位求反,末位加1,即可得到該負數補碼對應的真值的絕對值。

【例3】[X]補碼=01011001B,[X]補碼=11011001B,分別求其真值X。
(1)[X]補碼代表的數是正數,其真值:
X=+1011001B
=+(1×26+1×24+1×23+1×20)
=+(64+16+8+1)
=+(89)D
(2)[X]補碼代表的數是負數,則真值:
X=-([1011001]求反+1)B
=-(0100110+1)B
=-(0100111)B
=-(1×25+1×22+1×21+1×20)
=-(32+4+2+1)
=-(39)D

❷ 怎麼通過補碼求原碼反碼和x,例如x補碼等於9EH,求反碼原碼和x

9EH=10011110
假如是有符號數,反碼=補碼-1=10011110-1=10011101
原碼=反碼符號位不變,其餘按位取反=11100010
x=原碼十進制值=-98
假如是無符號數,反碼=原碼=補碼=10011110
x=原碼十進制值=158

❸ C語言。幫我看下源碼,輸入x,如果x小於10,則輸出字元格式的x的值,如果x大於等於10,則輸出字

你要把if里執行的語句用大括弧括起來,像這樣,試試
if (x < 10){
y = (char)x;
printf("%s", y);
}

❹ 已知數x的原碼,求出它的反碼,補碼和真值

1.正數 反碼和補碼跟原碼一樣,真值為+102
2.負數 反碼10000011 補碼10000100 真值-124

❺ 當x=+0.1011時,x的原碼、x的補碼和X的反碼各是多少。當X=-0.1011時,X原碼、X的補碼和X反碼各是多少

x=+0.1011時,原碼、補碼、反碼都是0.1011X=-0.1011時,原碼=1.1011,補碼=1.0101,反碼=1.0100小數點前面一位代表符號位。

❻ x補碼=0.1010寫出其x源碼及真值

X的源碼是0,真值是0.1010

【x】補+【y】補==0.0110
【x】補-【y】補==1.0010

❼ 補碼是1.0000,它的源碼和真值是多少(請寫出過程)

補碼是 1.0000,它的源碼和真值是多少?

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

你的說法,有謬誤。應該說:

數值X 的補碼是 1.0000,X 的源碼和真值是多少?

回答如下:

補碼和原碼,並非是一一對應的。

你要知道:補碼,比原碼多一個。

某個特殊的數值,有補碼,卻沒有原碼,這是事實。

1.0000,這是定點小數-1.0 的補碼。

真值就是:-1.0。

而-1.0 的原碼,並不存在。

你要是用「補碼的補碼」來求原碼,就肯定是錯誤的。

去翻翻書吧,這結論,並沒有什麼過程,就是一個結論。

❽ 原碼是怎麼算

原碼:在數值前直接加一符號位的表示法。

例如: 符號位=數值位

[+7]原=0 0000111 B

[-7]原=1 0000111 B

注意:a. 數0的原碼有兩種形式:

[+0]原=00000000B [-0]原=10000000B

b. 8位二進制原碼的表示範圍:-127~+127

編碼方式

原碼是有符號數的最簡單的編碼方式,便於輸入輸出,但作為代碼加減運算時較為復雜。

一個字長為n的機器數能表示不同的數字的個數是固定的2^n個,n=8時2^n=256;用來表示有符號數,數的范圍就是 -2^(n-1)-1 ~ 2^(n-1)-1,n=8時,這個范圍就是 -127 ~ +127。

但是在不需要考慮數的正負時,就不需要用一位來表示符號位,n位機器數全部用來表示是數值,這時表示數的范圍就是0~2^n-1,n=8時這個范圍就是0~255。

熱點內容
android音源 發布:2024-10-09 14:55:19 瀏覽:118
預編譯sql怎麼模糊查詢 發布:2024-10-09 14:31:24 瀏覽:217
我的世界伺服器被占違法嗎 發布:2024-10-09 14:27:50 瀏覽:390
資源配置如何發生作用 發布:2024-10-09 14:27:48 瀏覽:685
next數組演算法 發布:2024-10-09 14:25:38 瀏覽:138
存儲錄制視頻失敗 發布:2024-10-09 14:24:12 瀏覽:87
演算法結合硬體 發布:2024-10-09 14:11:37 瀏覽:997
安卓驅動編譯進內核 發布:2024-10-09 13:59:30 瀏覽:604
ubuntunginx編譯 發布:2024-10-09 13:27:36 瀏覽:727
怎麼查伺服器ip段 發布:2024-10-09 13:08:04 瀏覽:153