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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

二进制位运算

發布時間:2024/4/14 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二进制位运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. ?數的原碼補碼轉換  

  計算機運算中,數都是由補碼表示的。正數的補碼就是原碼;負數的補碼就是各位(包括符號位)取反,再加上1。假設數是8位的,最高位為符號位。1的補碼是0x00000001,-3的補碼是0xFFFFFFFD。

  如果由補碼轉化為原數:正數不變;負數的補碼是各位(包括符號位)取反,再加上1得到負數的絕對值,再貼上符號。補碼0x00000010的數是1,補碼0xFFFFFFE4的數的絕對值是000111002=2810,則該數是-28。

  下面代碼的輸出是-30:

1 #include <stdio.h> 2 3 int main() { 4 int myInt; 5 myInt = 0xFFFFFFE2; 6 printf("%d\n",myInt); 7 8 return 0; 9 }

?

2. 對負數取補碼,為什么要對絕對值的原碼取反加1?

  以-75為例。注意,7510=010010112。對-75取得它的機器表示,也就是0-75,下面是轉換的過程:

  可以看到,-75的機器表示的過程=28-75=11111111+1-01001011=11111111-01001011+1。而11111111-01001011相當于對75取反碼,所以-75的取補碼過程就是對75先取反碼,然后加1。所以,推廣得來看,對于負數的補碼,要對該負數的絕對值的原碼取反加1。

?

?

參考:

https://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html#fromtwo

https://en.wikipedia.org/wiki/Two%27s_complement

轉載于:https://www.cnblogs.com/Deribs4/p/5661943.html

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的二进制位运算的全部內容,希望文章能夠幫你解決所遇到的問題。

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