c語言按位與運算46輸出的值

2021-03-03 20:48:07 字數 3734 閱讀 6547

1樓:薊竹青釋娟

4&&5的值為1.這裡的1是表示真。因為4和5都是非0值。非0即為真。真真得真。所以結果為1

4&5的值為4。這裡4的二進位制是「100」,5的二進位制是「101」

按位與就是100&101=100(即十進位制為4);

2樓:匡起雲潘丙

先化成二進位制,在進行與就可以了的。

-4=1

100取反+1=1

100-6=1

110取反+1=1

010進行&

=1000

取反+1=1

1000=-8;

c語言中按位與(&)運算子是什麼意思

3樓:蟲心菜

是將二進位制數按照位的對應相與,得到一個新的二進位制數。1與0為0;1與1為1;0與0為0。

分析如下:

就是二進位制的每一位相與。

比如:1010 0011& 0000 1111,結果為0000 0011。也就是與上0相當於把那位數清0,與上1相當於把那位保留。

擴充套件資料

1、按位與運算子"&"是雙目運算子。 其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。

例如:9&5可寫算式如下: 00001001 (9的二進位制補碼)&00000101 (5的二進位制補碼) 00000001 (1的二進位制補碼)可見9&5=1。

按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 運算 ( 255 的二進位制數為11111111)。

4樓:生活如歌

比如:1010 0011

& 0000 1111

------------------------0000 0011

也就是與上0相當於把那位數清0,與上1相當於把那位保留

5樓:鞏採南檢豐

一個位元組有

8位也就

是有一個8位的2進位制數,比如

0000

0001

表示的是1

,0111

1111

表示127,而位運算

實際就是

2進位制的運算

&按位與

比如3&7

意思是0000

0011位與

0000

0111,結果是

3也就是0000

0011。意思是如果2個數字同一為一,有0為0。

|按位或

比如3|7

意思是0000

0011位或

0000

0111,

結果是7也就是0000

0111.意思是2個數字對比有一為一,同0為0.

^按位異或

比如3^7

結果就是4

0000

0100,

就是說2個數 每一位數字不同則為1相同則為0 ~

取反 這個意思是

把每一位上的數字取反

為0則變為1

為1則變為0

如~3。

<<左移表示把這個數字整體

向左移動多少位

如1<<2,表示把1向左移動2位

也就是說把

0000

0001

向左移動2位

就是0000

0100.

也就是說1變成了100。

>>右移就是把這個數的

末尾多少位

去掉如17>>3

表示0001

0001

的最後3位去掉

就變成了

0000

0010

6樓:匿名使用者

就是二進位制的每一位相與

假如a=0b0111(0b表示二進位制),b=0b1000,那麼a&b=

表示他們的每一位相與 結果是0b0000,不是二進位制的化成二進位制,希望對你有幫助。

7樓:匿名使用者

取地址操作符!就是取出&後物件或者變數的,儲存位置的地址

c語言中 4&&5的值為什麼是1 4&5的值是多少 邏輯與和按位與有什麼區別

8樓:匿名使用者

4&&5的值為1.這裡的1是表示真。因為4和5都是非0值。非0即為真。真真得真。所以結果為1

4&5的值為4。這裡4的二進位制是「100」,5的二進位制是「101」 按位與就是100&101=100(即十進位制為4);

9樓:匿名使用者

&&是邏輯與

false && false = falsefalse && true = falsetrue && false = falsetrue && true = true

&是位與

先將數看成2進位制的,然後按照上面的邏輯與的規則,對每一位進行邏輯與比如4 = 100

5 = 101

4 & 5 = (100)&(101)

1 0 0

1 0 1

-----------------

= 1 0 0

4 & 5 = (100)&(101) = (100) = 4

c語言中的按位運算子和邏輯運算子?

10樓:匿名使用者

&&是邏輯與,計算機的邏輯無非兩種,0和非0,7和8都是非0,那麼7&&8就是非0,也就是真了。

&是位操作,即按兩個運算元的二進位制每一位進行與運算7的二進位制:00000111

8的二進位制:00001000

與運算後為:00000000,結果就是假了

11樓:沙支誇依

預備知識:

邏輯值即bool值,要麼是true,要麼是false.

算數值,也就是我們通過加、減、乘、除、異或、同或等運算後得到的數值。

當然,在一定的場合中,邏輯值和算數值是可以轉換的。

c語言歸定:

邏輯值轉算數值:true等價於1,false等價於0例:void main()

輸出:1 0

算數值轉邏輯值時:

0等價於false,非0等價於true.

注意:非0等價於true.也就是說負數也等價於true的。

---------------

要我們來看書上的這個例子.

int x=7;

if (x&&8)

由此可知,7>0即為true,8>0也為true。那麼,true&&true當然也是true了。

-------------

int x=7; //7的二進位制寫法是 0111bif (x&8)//8的二進位制寫法是 1000b那麼,當111b和1000b取與操作的時候,當然是0了。那麼,在邏輯表裡就是false了

12樓:月影低徊

二者是不同的概念。

邏輯運算是針對真(1)和假(0)兩個邏輯值來進行的操作。具體到數字時,0對應假。非零對應真。故而7&&8結果是真。

位運算是整數特有的造作,是對運算元的二進位制編碼的每一位進行運算

13樓:eros方塊

7: 00000111

8: 00001000

按位與就是每位相與,答案是

7&8:00000000

當然是假

C語言,位運算在解壓中的應用,C語言的位運算在實際操作中有什麼用

其實就一個作用,加快解壓速度,要知道位運算速度奇快 望採納,謝謝 c語言的位運算在實際操作中有什麼用 這個就要涉及計算機組成原理,也就是數字在計算機中具體如何表示了,比如9 4 36,9在計算機中用2進製表示,1001,就是這個1001連續加上4次,但是如果移位的話就僅僅移兩個位,1001向左移位變...

C語言位運算對的疑問,C語言位運算裡這些怎麼用?

實際位操作時,都是按儲存型別的所有位進行的char 8位 short 16位 int 32位 前面的 實際操作時也是按上述的位數進行的 至少是8位 只是寫出來時全部是0,所以就省略了。因為取反後,0就變成了1,就不能省略了。所有位運算都是8個bit位來運算的,因為一個byte是最基本的單位 你說的 ...

C語言程式設計 輸入x的值,按下面公式計算並輸出y的值(輸出數

include include int main void return 0 include include int main flag後的條件,你自己改吧。c語言程式設計 輸入x的值,按下面公式計算並輸出y的值 輸出資料佔8列,精確到0.001 include include int main v...