日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

二进制数与十进制数的相互转换、二进制数的乘除运算、移位运算

發(fā)布時(shí)間:2023/12/18 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二进制数与十进制数的相互转换、二进制数的乘除运算、移位运算 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

二進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換

聊二進(jìn)制數(shù)的運(yùn)算前,我們先看看二進(jìn)制數(shù)的值與十進(jìn)制數(shù)的值是如何相互轉(zhuǎn)換的,
十進(jìn)制轉(zhuǎn)換成二進(jìn)制
將十進(jìn)制數(shù)除以2,得到的商再除以2,依次類(lèi)推直到商為1時(shí)為止,然后在旁邊標(biāo)出各步的余數(shù),最后從下往上倒著寫(xiě)出來(lái),高位補(bǔ)零就可以成功轉(zhuǎn)換成二進(jìn)制。
例如下圖49的二進(jìn)制數(shù)就是110001

二進(jìn)制轉(zhuǎn)換成十進(jìn)制
只需將二進(jìn)制數(shù)的各數(shù)位的值和位權(quán)相乘,然后將相乘的結(jié)果相加即可,有木有感覺(jué)特別方便。

二進(jìn)制數(shù)的符號(hào)位
二進(jìn)制數(shù)中表示負(fù)數(shù)值時(shí),一般會(huì)把最高位作為符號(hào)位來(lái)使用,最高位為0代表正數(shù),最高位為1代表負(fù)數(shù)。
這時(shí)了解二進(jìn)制的人可能就會(huì)疑問(wèn),既然最高位1代表負(fù)數(shù),1是00000001,那-1應(yīng)該是10000001,為什么是11111111呢?要解釋這個(gè)我們要先引入“補(bǔ)數(shù)”的概念,因?yàn)橛?jì)算機(jī)在做加減運(yùn)算時(shí)其實(shí)內(nèi)部只會(huì)做加法運(yùn)算,所以為了表示負(fù)數(shù),就用正數(shù)來(lái)表示負(fù)數(shù),這就是負(fù)數(shù)的概念。得到補(bǔ)數(shù)的方法很簡(jiǎn)單,進(jìn)行取反操作,將二進(jìn)制數(shù)的各位數(shù)的數(shù)值由1變?yōu)?,0變?yōu)?,再將結(jié)果加上1就可以了。

00000001——————1(十進(jìn)制) 先進(jìn)行取反操作,之后再加上1 11111110 變成 11111111——————-1(十進(jìn)制)

不信的同學(xué)還可以驗(yàn)證以下,就會(huì)發(fā)現(xiàn)8位二進(jìn)制的-1+1剛好等于100000000,而計(jì)算機(jī)會(huì)直接忽略掉最高位溢出的那個(gè)數(shù)字,所以剛好是00000000了。

二進(jìn)制數(shù)的乘除運(yùn)算

二進(jìn)制數(shù)的乘除運(yùn)算有兩種方法,要么先轉(zhuǎn)化位十進(jìn)制數(shù)進(jìn)行運(yùn)算之后再轉(zhuǎn)換為二進(jìn)制(想來(lái)有點(diǎn)麻煩),要么頭鐵直接用二進(jìn)制數(shù)進(jìn)行乘除運(yùn)算。


二進(jìn)制數(shù)111乘以1011,乘數(shù)1011的每一位分別與乘數(shù)相乘,得到111、1110、00000、111000,將其加起來(lái),得到1001101,這便是二進(jìn)制乘法最直接的解求過(guò)程;也可以將111轉(zhuǎn)化為十進(jìn)制數(shù)7,1011轉(zhuǎn)化為十進(jìn)制數(shù)11,顯版然7乘以11等于77,再將十進(jìn)制數(shù)77化為二進(jìn)制數(shù)1001101,顯然1x26+1x23+1x22+1x20=64+8+4+1=77,所求結(jié)果完全正確。——百度

二進(jìn)制數(shù)的移位運(yùn)算

移位運(yùn)算可是二進(jìn)制的門(mén)面招牌

移位運(yùn)算指的是將二進(jìn)制數(shù)值的各數(shù)位進(jìn)行左右移位(shift=移位)的運(yùn)算。移位有左移(向高位方向)和右移(向低位方向)兩種。在一次運(yùn)算中,可以進(jìn)行多個(gè)數(shù)位的移位操作。在程序代碼中<<這個(gè)運(yùn)算符表示左移,>>這個(gè)運(yùn)算符表示右移,

int a=1; int b; b=a<<3;//b現(xiàn)在為8

運(yùn)算符左側(cè)是被移位的值,右側(cè)表示要移位的位數(shù)。看到這有些同學(xué)就會(huì)想到,這移了幾位不多了幾個(gè)空白處么,計(jì)算機(jī)這千年老怪早想好了,如果是左移運(yùn)算的話,它就會(huì)在空出來(lái)的低位補(bǔ)0。如果是右移運(yùn)算的話,就稍微有點(diǎn)特殊,因?yàn)榇嬖趦煞N情況,既可以填1也可以填0,這就是邏輯右移和算數(shù)右移的區(qū)別。

當(dāng)二進(jìn)制數(shù)的值表示圖形模式而非數(shù)值時(shí),移位后需要在最高位補(bǔ)0.類(lèi)似于霓虹燈往右滾動(dòng)的效果。這就稱為邏輯右移。
將二進(jìn)制數(shù)作為帶符號(hào)的數(shù)值進(jìn)行運(yùn)算時(shí),移位后要在最高位填充移位前符號(hào)位的值(0或1)。這就稱為算數(shù)右移。例如負(fù)數(shù)就在最高位補(bǔ)1,正數(shù)就在最高位補(bǔ)0。

總結(jié)

以上是生活随笔為你收集整理的二进制数与十进制数的相互转换、二进制数的乘除运算、移位运算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。