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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

二進制數與十進制數的轉換

聊二進制數的運算前,我們先看看二進制數的值與十進制數的值是如何相互轉換的,
十進制轉換成二進制
將十進制數除以2,得到的商再除以2,依次類推直到商為1時為止,然后在旁邊標出各步的余數,最后從下往上倒著寫出來,高位補零就可以成功轉換成二進制。
例如下圖49的二進制數就是110001

二進制轉換成十進制
只需將二進制數的各數位的值和位權相乘,然后將相乘的結果相加即可,有木有感覺特別方便。

二進制數的符號位
二進制數中表示負數值時,一般會把最高位作為符號位來使用,最高位為0代表正數,最高位為1代表負數。
這時了解二進制的人可能就會疑問,既然最高位1代表負數,1是00000001,那-1應該是10000001,為什么是11111111呢?要解釋這個我們要先引入“補數”的概念,因為計算機在做加減運算時其實內部只會做加法運算,所以為了表示負數,就用正數來表示負數,這就是負數的概念。得到補數的方法很簡單,進行取反操作,將二進制數的各位數的數值由1變為0,0變為1,再將結果加上1就可以了。

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

不信的同學還可以驗證以下,就會發現8位二進制的-1+1剛好等于100000000,而計算機會直接忽略掉最高位溢出的那個數字,所以剛好是00000000了。

二進制數的乘除運算

二進制數的乘除運算有兩種方法,要么先轉化位十進制數進行運算之后再轉換為二進制(想來有點麻煩),要么頭鐵直接用二進制數進行乘除運算。


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

二進制數的移位運算

移位運算可是二進制的門面招牌

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

int a=1; int b; b=a<<3;//b現在為8

運算符左側是被移位的值,右側表示要移位的位數。看到這有些同學就會想到,這移了幾位不多了幾個空白處么,計算機這千年老怪早想好了,如果是左移運算的話,它就會在空出來的低位補0。如果是右移運算的話,就稍微有點特殊,因為存在兩種情況,既可以填1也可以填0,這就是邏輯右移和算數右移的區別。

當二進制數的值表示圖形模式而非數值時,移位后需要在最高位補0.類似于霓虹燈往右滾動的效果。這就稱為邏輯右移。
將二進制數作為帶符號的數值進行運算時,移位后要在最高位填充移位前符號位的值(0或1)。這就稱為算數右移。例如負數就在最高位補1,正數就在最高位補0。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。