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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

关于 C语言的 按位取反 ~

發布時間:2023/12/1 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于 C语言的 按位取反 ~ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、相關概念:

不管是正整數 還是 負整數在計算機中都是以 補碼的形式存在的;

取反:0變1,1變0 就叫做取反,取反 符號位也要改變;

反碼:符號位不變,其他位置0變1,1變0;

何為補碼? 如果有一個二進制位, 它的反碼 加1 就是 該二進制位的 補碼, 注意是 反碼 不是 取反。

2、 正整數的 反碼 和補碼 是其源碼本身;

負整數的 反碼 是源碼符號位不變,其他位0變1,1變0;補碼 是在反碼的基礎上再加1.

取反 是 在補碼的基礎上 取反;

3、 正整數的取反過程: 例如 7 (1字節 8位 首位位符號位)

源碼: 0000 0111

-> 補碼:0000 0111

-> 取反:1111 1000 (后面 還要 取補碼,這里是負數,因為計算機中是按照補碼存儲的)

-> 反碼:1000 0111

->反碼+1: 1000 1000 即 -8;

負整數的取反過程: 例如 -7 (1字節 8位 首位位符號位)

源碼: 1000 0111 (以補碼形式存儲,先求補碼)

-> 反碼:1111 1000

->補碼:1111 1001

->取反:0000 0110 即 6;

1. 所有正整數的按位取反是其本身+1的負數

2. 所有負整數的按位取反是其本身+1的絕對值

3. 零的按位取反是 -1(0在數學界既不是正數也不是負數)

總結

以上是生活随笔為你收集整理的关于 C语言的 按位取反 ~的全部內容,希望文章能夠幫你解決所遇到的問題。

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