A. c語言補碼作用
用16bit表示,三個碼分別是:原碼、反碼、補碼
-0:
1000
0000
0000
0000、1111
1111
1111
1111、0000
0000
0000
0000
-6875:
1001
1010
1101
1011、1110
0101
0010
0100、1110
0101
0010
0101
-11:
1000
0000
0000
1011、1111
1111
1111
0100、1111
1111
1111
0101
如果是8位,:原碼、反碼、補碼分別為:
-0:
1000
0000、1111
1111、0000
0000
-11:
1000
1011、1111
0100、1111
0101
6875
無法表示,因為8位的最大表大范圍是-128
~
127
正數:原碼=補碼
負數:
原碼
=
正數部分(去掉負號)的二進制值,且符號位(最左邊的比特位)為1
反碼
=
正數部分(去掉負號)的二進制值,按位取反
補碼
=
反碼
+
1
B. C語言里的補碼是什麼意思多舉幾個例子來解釋.
補碼,是在計算機內部,正負數的存放格式。
C 語言是高級語言。
用高級語言編程,是不用關心計算機內部的事的。
如果非要涉及計算機內部的細節,那就不是高級語言了。
很多教材書籍的作者,都沒有弄明白:什麼是高級語言。
計算機內部的碼,有很多種了,要是討論起來,C 語言就學不完了。
C. c語言中的原碼,反碼,補碼有什麼作用,是用來做什麼的
整數,存儲計算機中,就是補碼。
但是,C 語言,是高級語言。
那麼,用高級語言編程,就不需要討論計算機內部的存儲形式。
因此,C 語言和補碼,是完全不相關的兩碼事。
在 C 語言中,討論補碼(原碼反碼),顯然是外行。
D. C語言中的反碼,補碼有什麼作用
計算機中,只有補碼,並沒有原碼和反碼。
補碼,是帶符號數,在計算機中的儲存形式。
C 語言是高級語言。
用高級語言編程,只能、也必須,使用正負數字,不能用補碼。
如果需要使用補碼,那就不是高級語言了。
高級語言,是不用涉及到計算機內部的。
所以,計算機內部的補碼,就和高級語言毫無關系。
在 C 語言中,討論「原碼反碼補碼」,都是沒有影的事。
有些作者,明顯是個外行,寫教材時,東拉西扯的。
顯得他是多麼的高(yu)明(chun)。
E. C語言補碼有什麼用
那補碼出現了,0就只有一種表示方法?怎麼表示?還有,-1用補碼可以表示成11111111。那麼補碼11111111不是也可以看成原碼的11111111(十進制為255)?
在補碼中有+0即:0000
0000
表示十進制是0;也有-0即:1000
0000
表示十進制是-127(???請看下面);先看例子:原碼1表示為:0000
0001
最高位為1為負,補碼則
取反+1則是-1;即1111
1111即么-1(注是補碼)
+1
等於0么?錯,在平常人想是-1+1=0
。但是並不是1111
1111
+
0000
00001
(一個數(原碼)減一個數(減原碼)則是加上那個負數的補碼,這是應該知道的)所以是
1111
1111
+
0000
0001
=
1000
0000
最高位為符號位,溢出的捨去。這表示為-0
則十進制-128.很驚訝么?我知道很多人學了怎麼長時間不知道-128~127
范圍是-128。
請你搞清楚碼補、原碼,他們都是二進製表示的。因為計算機電路中只以通電(1)不通電(0)來表示。通過這一序列來描述整個計算機中所有數據。而補碼的出現是為了計算負數面設計的,為什麼?因為再物理電力中他的處理效率是最優的,即計算機的速度就快,具體微電子專業的知識編程人沒必要追究到底,了解下就行了~
^
_
^
F. 在C語言中,整數的數值是以補碼形式存放的,補碼是什麼意思啊
使用補碼代表負數,就可以把減法,轉化為加法運算。
那麼,在計算機中只要有一個加法器,就可以做加、減法了。
使用補碼的意義,就是簡化了計算機的硬體。
常識:時鍾倒撥 3 小時,可以用正撥 9 小時代替。
怎麼計算,自己推導吧。
--------
兩位十進制數,共有 100 個數字:00~99。
那麼,減一,就可以用 +99 代替:
25-1 = 24
25 + 99 = (1) 24
取後兩位,忽略進位 100,結果,不就是相同的嗎?
只要利用一個「較大的正數」代替負數,就能把減法變加法了。
這個較大的正數,就是負數的補數。
計算公式:-1 的補數=100-1 = 99。
-2 的補數=100-2 = 98。
。。。
--------
計算機中,使用的是二進制。
二進制的補數,就改稱為:補碼。
八位二進制數,共有 256 個數字:0000 0000~1111 1111。
那麼,-1 的補碼就是 1111 1111 = 255(十進制)。
同理,-2 的補碼就是 1111 1110 = 254(十進制)。
。。。
最後,-128的補碼就是 1000 0000 = 128(十進制)。
計算公式:負數的補碼=【256+這個負數】
零和正數,不需要求補數(補碼),直接計算即可。
G. 在C語言中補碼什麼意思
補碼主要是為了cpu運算器在進行減法運算時避免借位而設立的。
在早期,cpu中的運算器部分,只要實現一個加法器就可以完成四由算術運算。
因為計算機中的數值編碼是有限位數的,所以減法實際上相當於加上減數的補碼,而乘法是循環的加法,除法是循環的減法。這種思想在數學上叫轉化思想,在兵法上與」借刀殺人「、」借屍還魂「的借是「異曲同工」,用牛頓的話叫做「站在巨人的肩上「。
舉例說明,以8位的二進制為例,要計算1-1,只要用1加上-1的補碼即可。
-1的原碼:1000 0001,最高位是符號為,1表示負數,0表示正數。
-1的反碼:1111 1110, 按位取反是除符號位以外,其它每個位上的0變成1,1變成0。
-1的補碼:1111 1111,在反碼的基礎上是加上1即為補碼。
1-1 = 1+ 1111 1111 = 1 0000 0000 ,因為只有8位的二進製表示方法,此時溢出了,溢出位在硬體上是沒法表示的,因此結果還是0.
H. C程序設計中為什麼有原碼,反碼,補碼的存在它們各有何意義
計算機中,只有補碼。其意義,就是代表正負整數。
原碼反碼,根本就不存在。它們毫無意義。
I. C語言的補碼存在的意義是什麼看書不怎麼懂
使用補碼代表負數,就可以把減法,轉化為加法運算。
那麼,在計算機中只要有一個加法器,就可以做加、減法了。
使用補碼的意義,就是簡化了計算機的硬體。
常識:時鍾倒撥3小時,可以用正撥9小時代替。
怎麼計算,自己推導吧。
--------
兩位十進制數,共有100個數字:00~99。
那麼,減一,就可以用+99代替:
25-1=24
25+99=(1)24
忽略進位100,只取後兩位,結果,不就是相同的嗎?
結論:只要利用一個「較大的正數」代替負數,就能把減法變加法了。
這個較大的正數,就是負數的補數。
計算公式:-1的補數=100-1=99。
-2的補數=100-2=98。
。。。
--------
計算機中,使用的是二進制。
二進制的補數,就改稱為:補碼。
八位二進制數,共有256個數字:00000000~11111111。
那麼,-1的補碼就是11111111=255(十進制)。
同理,-2的補碼就是11111110=254(十進制)。
。。。
最後,-128的補碼就是10000000=128(十進制)。
計算公式:負數的補碼=【256+這個負數】
零和正數,不需要求補數(補碼),直接計算即可。