c語言位運算,c語言中 與 的區別

時間 2022-03-22 16:43:27

1樓:

這個很簡單,你開啟電腦的計算器,將521輸入,然後用二進位制顯示,你看到的是:1000001001,

123是:1111011;與123 按位與的結果就是0000 1001;用十進位制顯示的時候就是9,其他的計算也是這樣算出來的,你試下就知道了,在此我就不一一舉例了。

&:這是與操作,只有1&1才能是1

|:這是或操作,有乙個是1結果就是1

~:取反操作,

2樓:夜禮服假面

czs1&czs2

czs1 = 521 其二進位制為1000001001

czs2 = 123 其二進位制為1111011

那麼1000001001 & 1111011 = 1001 轉換為十進位制就是9

czs1|czs2

1000001001 | 1111011 = 1001111011 轉換為十進位制就是635

~czs1

~1000001001 = 0111110110 轉換為十進位制就是-522

czs1^czs2

1000001001 ^ 1111011 = 1001110010轉換為十進位制就是626

3樓:匿名使用者

czs1=521,二進位制是0b1000001001;

czs2=123,二進位制是0b1111011;

按位與得到0b1001,十進位制對應9;

按位或得到0b1001111011,十進位制對應635czs1按位取反得到0b1111110111110110,這個是個負數,是補碼,十進位制數是-522

按位異或得到0b1001110010,十進位制對應626

4樓:

只舉一例,餘下的樓主自己查閱「與」、「或」及其它概念的定義。

位與:resand=czs1&czs2

czs1=521=0x209=0b1000001001czs2=123=0x7b= 0b01111011位與的意思是:將某兩個數轉換位二進位制(即上述的0bxx),自最低位起將二進位制的每一位進行比較,兩個數的該位均為1時,最終位與的結果中該位也為1;否則最終位與結果中該位問0.

czs1與czs2位與後,最低位和第四位均為1,即最終位與結果為0b1001,即9.

5樓:匿名使用者

521的二進位制是0000 0010 0000 1001(short兩個位元組16位)

123的二進位制是0000 0000 0111 1011&就是兩個都是1才為1.所以521&123得到的二進位制是0000 0000 0000 1001等於十進位制的9

|是有乙個一就是1,~就是把0變1,把1變0,^是兩個不一樣才為1否則為0.(都是按位)。

c語言中//與/* */的區別

6樓:愛抹茶冪語

c語言中//與/* */的區別如下:

①是否為單行注釋

//是用於多種語言的單行注釋語句。/**/是注釋語句,不限制行數,在「/*」和「*/」之間的即為注釋。

②實用性的區別

//是用於多種語言的單行注釋語句,適用方便快捷,但是實用性不如多行注釋

/**/是注釋語句,不限制行數,在「/*」和「*/」之間的即為注釋,實用性大,但是符號鍵盤敲打麻煩。

程式編譯時,不對注釋內容作任何處理。注釋一般可出現在程式中的任何位置。注釋用來向使用者或程式設計師提示或解釋程式的功能作用。

擴充套件資料

c語言的注釋符一般分為兩種,一種是以「/*」開頭,在中間加上注釋內容,並以「*/」結尾的段落注釋符。在「/*」和「*/」之間的即為注釋。

另一種是以「//」開頭,後面加注釋內容的單行注釋符。在「//」之後的即為注釋。

c語言的注釋符是以「/*」開頭並以「*/」結尾的串。在「/*」和「*/」之間的即為注釋。程式編譯時,不對注釋作任何處理。注釋可出現在程式中的任何位置。

注釋用來向使用者提示或解釋程式的意義。在除錯程式中對暫不使用的語句也可用注釋符括起來,使翻譯跳過不做處理,待除錯結束後再去掉注釋符。

7樓:匿名使用者

//只能注釋單行,而/**/可以注釋多行。

//只能注釋本行後面的內容,而/* */注釋中間包括的所有內容,可以跨行。

//是行注釋,//後面的又會被認為是注釋,而/**/是塊注釋,在/**/中的內容都是注釋。

塊注釋舉例如下:

/abcdefkgalsdjfajsdlfkjasl;jldsjg;lajdfl;

fasdgklasdjgl

fadskjfal

/行注釋舉例如下:

//abcdefkgalsdjfajsdlfkjasl;jldsjg;lajdfl;

//fasdgklasdjgl

//fadskjfal

8樓:匿名使用者

//雙斜槓右邊的內容全都是注釋

/*斜槓星號,以及下乙個星號斜槓之間的內容,都是注釋

注釋注釋注釋*/

9樓:安徽新華電腦

/**/ 塊注釋

// 行注釋

塊注釋如下:

/*abcdefkgalsdjfajsdlfkjasl;jldsjg;lajdfl;

fasdgklasdjgl

fadskjfal

*/行注釋如下:

//abcdefkgalsdjfajsdlfkjasl;jldsjg;lajdfl;

//fasdgklasdjgl

//fadskjfal

區別不大,只是很多行時用塊注釋操作快一些。不過編輯器很多都有快捷鍵可以設定/取消注釋選中的**。

10樓:紳士貓

//只能注釋一行

/* */可以注釋多行。

當需要注釋多行時,以下方法更好用:

#if 0

注釋**塊

#endif

11樓:匿名使用者

// 是c++風格的,後者是c風格的。

// 有只能注釋單行的限制,但是用/* */注釋多行碰到巢狀/**/時也會有問題,還是建議用// 或者#if 0的方式

12樓:匿名使用者

/**/表示/*到*/的這部分全都是注釋,能跨行注釋

//表示的是單行注釋,從//後到這行結尾全部是注釋(不能跨行)

//這是單行注釋

/*這是另一種注釋

*/這兩種風格的注釋還能在某些其他的語言中使用至於用哪種注釋在於個人習慣,不存在哪種注釋好不好的問題

13樓:我愛你

//只能注釋單行

/**/可以注釋多行。

14樓:匿名使用者

用//注釋:

//防偽

//版權為製造商所有

c語言中!是什麼意思?

15樓:蹉唱朋天韻

#include

"stdio.h"

main()

你會發現得到的是

-2這個東西是

按位取反

比如:假設是八位二進位制

那麼1的二進位制是

0000

0001

,按位反後為

1111

1110

,,這個就是計算機內儲存的結果了

而這個數是多少呢,

注意,最高位為1說明這是個負數

,負數在計算機內是補碼,想知道補碼的十進位制,要換成原碼步驟是,最高不變,其它位取反,最後位加1

所以1000

0001+1=1000

0010

這個二進位制代表-2

可以給出乙個公式

,~n=-(n+1)

16樓:申綠定湃

23的二進位制為:

0000000000010111

(假如是int,為16位的話)

符號為」取反「運算子,

上述二進位製取反後為:

1111111111101000

如果a為int型,其(int16下)十進位制結果c為:

-24如果是int32(int預設為32位)的話,c其實也是為:-24

哈~~而a=23,c=~a,printf("%d",c);是乙個逗號運算子,其結果是最後乙個逗號後的值,

不過不能這樣寫啊,一定要分開!,寫為:

a=23;

c=~a;

printf(c);

17樓:匿名使用者

這是c語言的邏輯運算子:異或

這個**講的非常詳細,我摘抄了一些,詳細的你看以看看。有很例子,好懂!

邏輯運算子把各個運算的變數(或常量)連線起來組成乙個邏輯表示式。

邏輯運算子有4個,它們分別是: !(邏輯非)、 ||(邏輯或)、&&(邏輯與) ^(異或)。在位運算裡面還有 &(位與)、|(位或)的運算。

什麼是邏輯運算--邏輯運算用來判斷一件事情是「對」的還是「錯」的,或者說是「成立」還是「不成立」,判斷的結果是二值的,即沒有「可能是」或者「可能不是」,這個「可能」的用法是乙個模糊概念,在計算機裡面進行的是二進位制運算,邏輯判斷的結果只有二個值,稱這二個值為「邏輯值」,用數的符號表示就是「1」和「0」。其中「1」表示該邏輯運算的結果是「成立」的,如果乙個邏輯表示式的結果為「0」,那麼這個邏輯表示式表達的內容「不成立「。

例 1:通常乙個教室有二個門,這二個門是併排的。要進教室從門a進可以,從門b進教室也行,用一句話來說是「要進教室去,可以從a門進『或者』從b門進」

用邏輯符號來表示這乙個過程--能否進教室用符號c表示,教室門分別為a和b。c的值為1表示可以進教室,為0 表示進不了教室。a和b的值為1時表示門是開的,為0表示門是關著的,列表如下:

說明 c a b

2個教室的門都關著,進不去教室 0 0 0

門b是開著的,可以進去 1 0 1

門a是開著的,可以進去 1 1 0

門a和b都是開著的,可以進去 1 1 1

把表中的過程寫成邏輯運算就是: c = a || b 這就是乙個邏輯表示式,它是乙個「或」運算的邏輯表示式。這個表示式要表達的是這個意思--如果要使得c為1,只要 a「或」b其中之一為 1即可以達到。

所以「||」運算稱為「或」運算。

18樓:亢瑾瑜千淑

~按位取反

即把數值變成二進位制後取反。

結果為-24

23->10111(前面位補零,個數視機子位數而定),取反01000(前面的零變1),輸出格式"%d"

為有符號型。

比如我就用最簡單的8位來說:23->00010111,取反11101000,高位為符號位1,所以是負數,負數在計算機內以反碼形式儲存,反碼=二進位製取反(符號位不變)+1;所以原來的數為11101000-1=11100111,取反:10011000

為-24

19樓:柴奕琛曾風

1.if語句的一般格式

if(表示式)

[else

](1)if語句中的「表示式」必須用「(」和「)」括起來。

(2)else子句(可選)是if語句的一部分,必須與if配對使用,不能單獨使用。

(3)當if和else下面的語句組,僅由一條語句構成時,也可不使用復合語句形式(即去掉花括號)。

2.if語句的執行過程

(1)預設else子句時

當「表示式」的值不等於0(即判定為「邏輯真」)時,則執行語句組1,否則直接轉向執行下一條。

(2)指定else子句時

當「表示式」的值不等於0(即判定為「邏輯真」)時,則執行語句組1,然後轉向下一條語句;否則,執行語句組2。如圖4-1(b)所示。

3.if語句的巢狀與巢狀匹配原則

if語句允許巢狀。所謂if語句的巢狀是指,在「語句組1」或(和)「語句組2」中,又包含有if語句的情況。

if語句巢狀時,else子句與if的匹配原則:與在它上面、距它最近、且尚未匹配的if配對。

為明確匹配關係,避免匹配錯誤,強烈建議:將內嵌的if語句,一律用花括號括起來。

c語言的或運算和自增運算,c語言中指標運算子 和自增運算子 的優先順序

a與 a是先加 減 再用 a 與a 是先用後加 減 是如果前面運算為0後面就不運算 是如果前面運算為1後面就不運算 a 與 a的運算都比 高 問題1 int a,b a b 1 a b a b a a就為2,所以b 1後面就不運算了 include void main 問題二 int a,b a b...

C語言的逗號運算子,C語言中逗號運算子怎麼用

是的,賦值運算的優先順序高於逗號運算子,所以先計算y x a b 再計算 b c 整個逗號表示式y x a b b c 的值為b c 然而並沒有卵用 沒有賦值 故 最後y x a b 你的理解是正確的。我估計是 程式漏了一對 小括號 y x a b b c 意思是把逗號 表示式的 值賦給y 這樣就有...

C語言中sizeof與strlen的區別是什麼

sizeof 是被測試型別百占用位元組的大度小 strlen是以 0為結束問符答的字串的串長度 不含結束符 比如吧 char p 0123456789abcdef char str 0123456789abcdef char str2 100 0123456789abcdef sizeof p 只是...

C語言中 與 的區別和1 11的區別

和 是邏輯運算子,和 是位運算子。與 僅當左右為真時值為1,否則為0,如2 1 1 0等於1 或 僅當左右為假時值為0,否則為1,如1 2 0 1等於0 按位與,僅當左右為1是值為1,否則為0,如1 1等於1,1 0等於0 按位或,僅當左右為0時值為0,否則為1,如0 0等於0,0 1等於1 和 屬...

c語言的加加減減,c語言中的減減加加運算的演算法是

int i 8 i i 1 printf d n i 右邊的式子等價於 printf d n i i的意思是在使用i之前,先給i加上1 加上1後i的值為9,變為9後再輸入,所以第乙個輸出9 i i 1 printf d n i 同理 這裡 printf d n i i的意思是在使用i之前先減1,經過...