1樓:吉祥二進位制
c語言中的右移不是看一堆資料,而是看資料型別是有符號還是無符號。如你所寫的資料:
1111 1011 >> 2;
如果是無符號數:右移2位就是邏輯移位,得到的結果顯然就是,0011 1110 即0x3e
如果是有符號數:右移2位就是算術移位,得到結果就是 1111 1110 即0xfe
測試**如下:
#include
int main()
注意兩點: 對於編譯器來說,到底是進行邏輯移位還是算術移位,在c/c++標準中沒有進行說明,但是一般編譯器,有符號數右移使用算術移位,無符號數右移使用邏輯移位, 也許這是一個很容易理解的事情,所以不需要規定了……
2樓:匿名使用者
如果 11111011 是二進位制的話,右移2位就是 11111110,高位是1,補充的就是1,高位是0就補充0
3樓:偷饅頭的賊
右移就是去掉右邊的,比如111110111》2就是去掉右邊的11.
如果是11111011《2 就是在右邊新增2個00=1111101100
4樓:何棟
62。這是c語言中的右移問題。
5樓:匿名使用者
>>為右移11111011>>2=00111110
c語言中5&6的值是多少?5|6的值又是多少?
6樓:匿名使用者
&是按位與的意思,|是按位或的意思
&的計算規則如下
1&1 = 1
1&0 = 0&1 = 0&0 = 0
|的計算規則如下
1|1 = 1|0 = 0|1 = 1
0|0 = 0
5的二進位制表示為101, 6的二進位制位110所以5&6=(100)十進位制就是4
5|6=(111)十進位制就是7
c語言按位取反~
7樓:am蘑菇
-5 首先我們現在的機器是32位的(樓主可以不必要理會)
所以4的二進位制為
0000 0000 0000 0000 0000 0000 0000 0100
而它的取反是
1111 1111 1111 1111 1111 1111 1111 1011
可以發現最高位是1,所以是負數(因為是int型,如果是unsigned就不能說是負數)。
但是,還要通過補碼的形式進行輸出(譚浩強第二章有說)
補碼是:按位取反再加1
所以也就是把1111 1111 1111 1111 1111 1111 1111 1011再取反
成0000 0000 0000 0000 0000 0000 0000 0100
然後再加1
就成0000 0000 0000 0000 0000 0000 0000 0101
所以得到答案為-5
8樓:丹昆雄
對於16位機子,4的2進製表示如下
00000000 00000100
取反後為
11111111 11111011
即-5驗證如下
#include
int main()
輸出結果為
-5請按任意鍵繼續. . .
決定C語言中函式返回值型別的是,4 C語言中,函式返回值的型別是由 決定的。
決定c語言中 函式返回值型別的是定義函式時在函式首部所指定的類回型。在c語言中,一個 答標準的函式定義語句塊必須包含函式返回值的型別識別符號 函式名 形參型別及數量 函式體 返回值表示式。如果函式返回值型別為 void 即無返回值 函式定義示例 其中int是函式返回值型別 int fun int a...
c語言計算圓周率的近似值填空,C語言 計算圓周率的近似值 填空
第一空 pi 0 第二空 pi pi t 第三空 pi pi 4 這是利用了一個求pi的公式 pi 4 1 1 3 1 5 1 7.白日依山盡,黃河入海流。欲窮千里目,更上一層樓。c語言 程式設計用 4 1 1 3 1 5 1 7 的公式求 的近似值 include void main while ...
C語言裡5 3的值 是怎麼算出來的
在c語言裡!的意思是 非 5 3就是5非等於3,就是5不等於3,這邏輯是對的,所以值是1 如果為3!3的話,值就為0了。是c語言中的非運算子,在變數前面使用它,會構建非運算表示式,表示式的返回結果是個布林值 也就是隻有true或false 對變數使用時,如果變數不是布林資料型別,將會強制轉化為布林型...