真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語言負(fù)數(shù) go語言常量

golang 正負(fù)數(shù)取反

想要知道取反計(jì)算過程,首先搞懂? “原碼“,“反碼”,“補(bǔ)碼”,“取反”。

成都創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)東鄉(xiāng)族,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

0變1,1變0

原碼是計(jì)算機(jī)機(jī)器數(shù)中最簡單的一種形式,數(shù)值位就是真值的絕對(duì)值。原碼表示法在最高位為符號(hào):正數(shù)該位為0,負(fù)數(shù)該位為1,原碼又稱帶符號(hào)的絕對(duì)值??凑麛?shù)9及-9的原碼如下:

9的原碼:0000 1001

-9的原碼: 1000 1001

重點(diǎn):對(duì)于源碼,絕對(duì)值相等的正數(shù)和負(fù)數(shù)只有符號(hào)位不同。

反碼通常是用來由原碼求補(bǔ)碼或者由補(bǔ)碼求原碼的過渡碼。正數(shù)的反碼就是其原碼,負(fù)數(shù)的反碼就是將原碼除符號(hào)位以外每位取反(0變1,1變0)。例如:

9的反碼:0000 1001

-9的反碼:1111 0110

在計(jì)算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼來表示和存儲(chǔ)。正數(shù)的原碼就是其補(bǔ)碼。負(fù)數(shù)的補(bǔ)碼是其反碼+1.例如:

9的補(bǔ)碼:0000 1001

-9的補(bǔ)碼:1111 0111

正整數(shù)的原碼、反碼、補(bǔ)碼都是一樣的。負(fù)數(shù)的反碼是除符號(hào)位其他每一位取反,負(fù)數(shù)的補(bǔ)碼是其反碼+1

首先明確一個(gè)概念,由于在計(jì)算機(jī)中二進(jìn)制都是以其補(bǔ)碼形式存放在內(nèi)存中的。所以要知道 ^9 就是對(duì) 9 的補(bǔ)碼取反,也就是說無論是整數(shù)還是負(fù)數(shù)對(duì)其取反都是對(duì)其補(bǔ)碼取反。

正數(shù)9:

原碼為: 0000 1001

反碼為: 0000 1001

補(bǔ)碼為: 0000 1001

1. 取反結(jié)果=負(fù)數(shù)補(bǔ)碼 :0000 1001 --- (取反) 1111 0110?

注:由于 ^ 位取反操作符,對(duì)于符號(hào)位也會(huì)取反 所以這里得到一個(gè)負(fù)數(shù)的補(bǔ)碼,想要計(jì)算其真實(shí)的值。還需要將其轉(zhuǎn)換成原碼。

2. 得反碼:1111 0110? -? 1? =??1111 0101

補(bǔ)碼 = 反碼 + 1 (反推) 反碼?= 補(bǔ)碼 - 1

3. 得原碼?1111 0101 -- 1111 1010 = -10

原碼? =? 反碼取反

負(fù)數(shù)-9:

原碼為: 1111 1001

反碼為: 1111 0110

補(bǔ)碼為: 1111 0111

1. 取反結(jié)果=正數(shù)補(bǔ)碼?1111 0111 ----?0000 1000

2. 正數(shù)原碼 = 反碼 = 補(bǔ)碼 =?0000 1000 = 8

golang 如何將二進(jìn)制數(shù)據(jù)轉(zhuǎn)為負(fù)數(shù)的十進(jìn)制?

-1的二進(jìn)制是1111 1111,不是1000 0001喔,負(fù)數(shù)的二進(jìn)制表示為其原碼的反碼再加1,

正數(shù)的反碼跟原碼不變,而負(fù)數(shù)的反碼除符號(hào)位外其他位取反

-1的原碼是1000 0001,所以反碼為1111 1110,最后在加1即1111 1111

如果二進(jìn)制1000 0001是一個(gè)有符號(hào)位的8位數(shù)據(jù),那么最高位為符號(hào)位,1為負(fù)數(shù)0為正數(shù)

那反過來二進(jìn)制1000 0001表示成十進(jìn)制就是減1在取反,

1000 0001 - 1=1000 0000

除符號(hào)位取反后為1111 1111即-127

go語言里怎么把整數(shù)變成負(fù)數(shù)取相反數(shù)?

取一個(gè)數(shù)的相反數(shù),可以用數(shù)學(xué)運(yùn)算來實(shí)現(xiàn):-1 * x的結(jié)果就是x的相反數(shù)。

Go語言中的符號(hào)"

左移運(yùn)算符()

將一個(gè)運(yùn)算對(duì)象的各二進(jìn)制位全部左移若干位(左邊的二進(jìn)制位丟棄,右邊補(bǔ)0)。

例:a = a 2 將a的二進(jìn)制位左移2位,右補(bǔ)0,

左移1位后a = a * 2;

若左移時(shí)舍棄的高位不包含1,則每左移一位,相當(dāng)于該數(shù)乘以2。

右移運(yùn)算符()

將一個(gè)數(shù)的各二進(jìn)制位全部右移若干位,正數(shù)左補(bǔ)0,負(fù)數(shù)左補(bǔ)1,右邊丟棄。

操作數(shù)每右移一位,相當(dāng)于該數(shù)除以2。

例如:a = a 2 將a的二進(jìn)制位右移2位,

左補(bǔ)0 or 補(bǔ)1 得看被移數(shù)是正還是負(fù)。


分享文章:go語言負(fù)數(shù) go語言常量
分享URL:http://weahome.cn/article/hpesco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部