关于 C语言的 按位取反 ~
1、相關(guān)概念:
不管是正整數(shù) 還是 負(fù)整數(shù)在計算機(jī)中都是以 補(bǔ)碼的形式存在的;
取反:0變1,1變0 就叫做取反,取反 符號位也要改變;
反碼:符號位不變,其他位置0變1,1變0;
何為補(bǔ)碼? 如果有一個二進(jìn)制位, 它的反碼 加1 就是 該二進(jìn)制位的 補(bǔ)碼, 注意是 反碼 不是 取反。
2、 正整數(shù)的 反碼 和補(bǔ)碼 是其源碼本身;
負(fù)整數(shù)的 反碼 是源碼符號位不變,其他位0變1,1變0;補(bǔ)碼 是在反碼的基礎(chǔ)上再加1.
取反 是 在補(bǔ)碼的基礎(chǔ)上 取反;
3、 正整數(shù)的取反過程: 例如 7 (1字節(jié) 8位 首位位符號位)
源碼: 0000 0111
-> 補(bǔ)碼:0000 0111
-> 取反:1111 1000 (后面 還要 取補(bǔ)碼,這里是負(fù)數(shù),因為計算機(jī)中是按照補(bǔ)碼存儲的)
-> 反碼:1000 0111
->反碼+1: 1000 1000 即 -8;
負(fù)整數(shù)的取反過程: 例如 -7 (1字節(jié) 8位 首位位符號位)
源碼: 1000 0111 (以補(bǔ)碼形式存儲,先求補(bǔ)碼)
-> 反碼:1111 1000
->補(bǔ)碼:1111 1001
->取反:0000 0110 即 6;
1. 所有正整數(shù)的按位取反是其本身+1的負(fù)數(shù)
2. 所有負(fù)整數(shù)的按位取反是其本身+1的絕對值
3. 零的按位取反是 -1(0在數(shù)學(xué)界既不是正數(shù)也不是負(fù)數(shù))
總結(jié)
以上是生活随笔為你收集整理的关于 C语言的 按位取反 ~的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《寻人大师》全集剧情介绍 1
- 下一篇: C语言 按位或 正整数与负整数 之间