想要知道取反計算過程,首先搞懂? “原碼“,“反碼”,“補碼”,“取反”。

成都創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)東鄉(xiāng)族,10余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
0變1,1變0
原碼是計算機機器數(shù)中最簡單的一種形式,數(shù)值位就是真值的絕對值。原碼表示法在最高位為符號:正數(shù)該位為0,負數(shù)該位為1,原碼又稱帶符號的絕對值。看整數(shù)9及-9的原碼如下:
9的原碼:0000 1001
-9的原碼: 1000 1001
重點:對于源碼,絕對值相等的正數(shù)和負數(shù)只有符號位不同。
反碼通常是用來由原碼求補碼或者由補碼求原碼的過渡碼。正數(shù)的反碼就是其原碼,負數(shù)的反碼就是將原碼除符號位以外每位取反(0變1,1變0)。例如:
9的反碼:0000 1001
-9的反碼:1111 0110
在計算機系統(tǒng)中,數(shù)值一律用補碼來表示和存儲。正數(shù)的原碼就是其補碼。負數(shù)的補碼是其反碼+1.例如:
9的補碼:0000 1001
-9的補碼:1111 0111
正整數(shù)的原碼、反碼、補碼都是一樣的。負數(shù)的反碼是除符號位其他每一位取反,負數(shù)的補碼是其反碼+1
首先明確一個概念,由于在計算機中二進制都是以其補碼形式存放在內(nèi)存中的。所以要知道 ^9 就是對 9 的補碼取反,也就是說無論是整數(shù)還是負數(shù)對其取反都是對其補碼取反。
正數(shù)9:
原碼為: 0000 1001
反碼為: 0000 1001
補碼為: 0000 1001
1. 取反結(jié)果=負數(shù)補碼 :0000 1001 --- (取反) 1111 0110?
注:由于 ^ 位取反操作符,對于符號位也會取反 所以這里得到一個負數(shù)的補碼,想要計算其真實的值。還需要將其轉(zhuǎn)換成原碼。
2. 得反碼:1111 0110? -? 1? =??1111 0101
補碼 = 反碼 + 1 (反推) 反碼?= 補碼 - 1
3. 得原碼?1111 0101 -- 1111 1010 = -10
原碼? =? 反碼取反
負數(shù)-9:
原碼為: 1111 1001
反碼為: 1111 0110
補碼為: 1111 0111
1. 取反結(jié)果=正數(shù)補碼?1111 0111 ----?0000 1000
2. 正數(shù)原碼 = 反碼 = 補碼 =?0000 1000 = 8
-1的二進制是1111 1111,不是1000 0001喔,負數(shù)的二進制表示為其原碼的反碼再加1,
正數(shù)的反碼跟原碼不變,而負數(shù)的反碼除符號位外其他位取反
-1的原碼是1000 0001,所以反碼為1111 1110,最后在加1即1111 1111
如果二進制1000 0001是一個有符號位的8位數(shù)據(jù),那么最高位為符號位,1為負數(shù)0為正數(shù)
那反過來二進制1000 0001表示成十進制就是減1在取反,
1000 0001 - 1=1000 0000
除符號位取反后為1111 1111即-127
取一個數(shù)的相反數(shù),可以用數(shù)學(xué)運算來實現(xiàn):-1 * x的結(jié)果就是x的相反數(shù)。
左移運算符()
將一個運算對象的各二進制位全部左移若干位(左邊的二進制位丟棄,右邊補0)。
例:a = a 2 將a的二進制位左移2位,右補0,
左移1位后a = a * 2;
若左移時舍棄的高位不包含1,則每左移一位,相當(dāng)于該數(shù)乘以2。
右移運算符()
將一個數(shù)的各二進制位全部右移若干位,正數(shù)左補0,負數(shù)左補1,右邊丟棄。
操作數(shù)每右移一位,相當(dāng)于該數(shù)除以2。
例如:a = a 2 將a的二進制位右移2位,
左補0 or 補1 得看被移數(shù)是正還是負。
分享文章:go語言負數(shù) go語言常量
文章地址:http://chinadenli.net/article20/hpesco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)