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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

二进制正负数转换和移位的规则详解

發布時間:2024/3/26 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二进制正负数转换和移位的规则详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、轉換規則

二進制整數都是以補碼的形式出現的
正數的原碼、反碼、補碼都相同
負數的反碼就是正數的原碼先把最高位變為1然后其余的位取反
負數的補碼就是該負數的反碼加1。

2、二進制的移位規則

<<和>>

二進制數,在向右移1位近似表示除以2,但是十進制的奇數轉化為二進制數后,在向右移時,最右邊的1將被直接抹去,說明向右移對于奇數并非完全近似于除以2。
左移 <<,和右移>> 兩種運算中,符號位均參與移動,除了負數右移,高位補1之外,其他情況均在空位處補0。
在左移運算中,由于符號位均參與向左移動,如上圖,最左位可能是1或者是0,正數向左移動的結果可能是正,也可能是負;負數向左移動的結果同樣可能是正,也可能是負。

>>>>無符號右移

注意不存在<<<無符號向左移動的運算方式!
對于三個大于號的>>>無符號向右移動時,正負數高位均補0,造成的結果就是:
正數不斷向右移動的最小值是0
負數不斷向右移動的最小值是1
無符號意即藐視符號位,符號位失去特權必須像其他平常的數字位一起向右移動,高位直接補0,根本不關心是正數還是負數。此運算常用在高位轉低位的場景中。
為何負數不斷地無符號向右移動的最小值是1呢?在實際編程中,位移運算僅作
用于整型(32位)和長整型(64位)數上,假如在整型數上移動的位數是32位,無論是否帶符號位以及移動方向,均為本身。因為移動的位數是一個mod32的結果,
即35>>1與35>>33是一樣的結果。如果是長整型,mod64,即35<<1與35<<65的結果是一樣的。負數在無符號往右移動63位時,除最右邊為1 外,左邊均為0,達到最小值1,如果>>>64,則為其原數值本身。

總結

以上是生活随笔為你收集整理的二进制正负数转换和移位的规则详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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