1樓:
c語言中-1的絕對值是1,二進位制00000001,取反為11111110,-1為11111111,取反是00000000。
1、所有正整數的按位取反是其本身+1的負數;
2、所有負整數的按位取反是其本身+1的絕對值;
3、零的按位取反是-1(0在數學界既不是正數也不是負數);
0的原碼:00000000000000000000000000000000
取反:11111111111111111111111111111111
最高位是1所以是負數,求其原始資料,方法是
再次取反加1(符號位不變)
取反:10000000000000000000000000000000
加110000000000000000000000000000001
所以是-1
擴充套件資料
c語言按位與運算子(&)
按位與運算將兩個運算分量的對應位按位遵照以下規則進行計算:
0&0=0,0&1=0,1&0=0,1&1=1。
即同為1的位,結果為1,否則結果為0。
例如,設3的內部表示為
5的內部表示為
則3&5的結果為
按位與運算有兩種典型用法,一是取一個位串資訊的某幾位,如以下**擷取x的最低7位:x&0177。二是讓某變數保留某幾位,其餘位置0,如以下**讓x只保留最低6位:
x=x&077。以上用法都先要設計好一個常數,該常數只有需要的位是1,不需要的位是0。用它與指定的位串資訊按位與。
2樓:匿名使用者
-1是這樣表示的:-1的絕對值是1,二進位制0000 0001,取反為1111 1110,加1等於1111 1111,所以-1為1111 1111,這個取反當然是0000 0000
3樓:匿名使用者
-1補碼二另進位制是111111111取反為00000000
-1轉二進位制的方法,1轉二進位制,取反加1,1的二進位制是0000001,取反11111110加1為11111111
4樓:皇家小快樂
負數的反碼符號不變 其他位按位取反
5樓:怕壯
-1 的 **是 1111 1111 啊, 不要搞錯了
c語言中怎麼保留小數2位,C語言中如何保留一位小數點
浦雁真棋 這是由printf 這個函式的輸出格式決定的,後面的表示格式,f表示以小數形式輸出單 雙精度數,在沒有規定位數時預設為輸出6為小數,若規定了位數,則例如 m.nf則表示輸出一共為m位,其中小數佔n位,而你這個 並沒有規定小數點後有多少位,故輸出6位 卻竹青迮鵑 把printf 2f n d...
C語言中的取反與移位運算子的問題
板淑敏麻午 c 中的位運算子,只能用於int和unsignedint型別的,寬度小於int的會被隱式轉化成int。左移當然沒問題,因為截斷的時候用不到高位,右移的時候,高位的1被截到b中,造成無論移位和取反的順序,結果都是一樣的。include include intmain 鄞微蘭止巳 右移運算右...
c語言中怎麼用,C語言中 怎麼用
按位與 屬於位操作 一般用在取記憶體中特定位的值 如有 11111111 我要取其中從左起第三位的值,就用它按位與 00001000 關於 位操作的技巧還有很多,你可以去自己搜一下還有一個應用就是用於關係運算中,如 有兩小段程式 sample 1 int main cout sample 2 int...