A. c語言中的二進制補碼
(1)正數的補碼:與原碼相同。
(2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1。
B. 怎麼求一個負數的原碼和補碼
正數,本身就是補碼。
負數,就用它的正數,減一取反,即可得到補碼。
如:+9 的二進制是:0000 1001。
下面求-9 補碼:
先減一:0000 1001 - 1 = 0000 1000;
再取反:1111 0111。
所以有:-9 補碼 = 1111 0111。
這不就完了嗎!
簡不簡單?意不意外?
原碼反碼符號位,討論這些垃圾幹嘛?
這些垃圾,只是那些專家用來騙吃騙喝的!
C. C語言中負數的補碼怎麼求
正數,本身就是補碼。
負數,就用它的正數,減一取反,即可得到補碼。
如,已知:+9 的二進制是:00001001。
下面求-9補碼:
先減一:00001001-1=00001000;
再取反:11110111。
所以有:-9補碼=11110111。
這不就完了嗎!
簡不簡單?意不意外?
原碼反碼符號位,討論這些垃圾幹嘛?
這些垃圾,都是用來騙吃騙喝的!
D. 為什麼c語言中可以用補碼來表示負數
計算機中,只有加法器,沒有減法器。
負數,必須轉換成正數(即補碼),用加法來計算。
你看十進制:
24 - 1 = 23
24 + 99 = (1) 23
舍棄進位,+99 就可以代替-1。
+99 就稱為-1 的補數。
負數的補數= 負數+10^n, n 是位數。
二進制的補碼,也是這樣計算出來的。
負數的補碼= 負數+2^n, n 是位數。
補碼,與原碼反碼符號位,並無關系。
取反加一的理論,是不存在的。
E. C語言負數的進制轉換
負數是有符號位的,在計算機中以補碼的形式儲存,最高位為1表示負數,其餘位按位取反再加1,然後你再把二進制轉換成8進制和16進制就可以了。
在C語言中,你可以用printf("%X",-617);輸出16進制
用printf("%o",-617);輸出8進制
F. C語言負數的補碼怎麼轉換的如-12345怎麼轉化為53191的
數在計算機中是以二進制形式表示的。
數分為有符號數和無符號數。
原碼、反碼、補碼都是有符號定點數的表示方法。
一個有符號定點數的最高位為符號位,0是正,1是副。
以下都以8位整數為例,
原碼就是這個數本身的二進制形式。
例如
1000001
就是-1
0000001
就是+1
正數的反碼和補碼都是和原碼相同。
負數的反碼是將其原碼除符號位之外的各位求反
[-3]反=[10000011]反=11111100
負數的補碼是將其原碼除符號位之外的各位求反之後在末位再加1。
[-3]補=[10000011]補=11111101
一個數和它的補碼是可逆的。
為什麼要設立補碼呢?
第一是為了能讓計算機執行減法:
[a-b]補=a補+(-b)補
第二個原因是為了統一正0和負0
正零:00000000
負零:10000000
這兩個數其實都是0,但他們的原碼卻有不同的表示。
但是他們的補碼是一樣的,都是00000000
特別注意,如果+1之後有進位的,要一直往前進位,包括符號位!(這和反碼是不同的!)
[10000000]補
=[10000000]反+1
=11111111+1
=(1)00000000
=00000000(最高位溢出了,符號位變成了0)
有人會問
10000000這個補碼表示的哪個數的補碼呢?
其實這是一個規定,這個數表示的是-128
所以n位補碼能表示的范圍是
-2^(n-1)到2^(n-1)-1
比n位原碼能表示的數多一個
G. 求高手指點,在C語言的編程中,如何實現十進制的負整數轉換成二進制
負數在計算機內部是用補碼表示的
例如 -1
1的原碼是 0000 0001
則-1的反碼是 1111 1110
補碼是 1111 1111
所以 -1在計算機中表示為 1111 1111
二進制數中有符號數有符號位,該符號位為1表示是負數
比如:
11111111,如果是無符號數那麼就代表:255,如果是有符號數就代表負127,最高位是符號位,為1,代表是負數,剩下的7位代表具體數值
H. 為什麼c語言負數是以補碼形式存放的
以-1和+1相加為例子。
一個位元組,如果是負數,它是255,如果是正數,它是
-1。
255+1
=
256(1,0000,0000)
-1+1
=
0(0,0000,0000)
因為加到256後並不會真的進位,而是把op置位。所以整負數相加的問題很多地方都可以不去理會了。不用真正去區分正負了,只要依據最後需要的類型去處理結果就可以。
I. C語言中,如何求一個數的二進制補碼舉個例子,謝謝!
正數的補碼是其原值
例如佔一個位元組的10,二進制為0 000 1010, 第一位0表示+,
補碼也是0 000 1010
負數的話-10, 二進制為1 000 1010, 第一位1 表示-,
補碼求法為 :符號位不變,其餘取反再加1
1 000 1010 取反 1 111 0101
再加1: 1 111 0110