c語言中x的初始值是0b01111010,執行了x 0x20之後x是多少?x 0x20是什麼意思

2021-05-26 16:01:45 字數 6754 閱讀 8681

1樓:

x |=0x20 吧?x |= 0x20 即 x = x | 0x20 = 0b01111010 | 0b00100000 = 0b01111010 ,

| 運算子

是「或」運算子,0|0=0,0|1=1,1|0=1,1|1=1,

2樓:匿名使用者

||c語言中沒有||=這個運算子號。是不是筆誤?是不是|=?

如果是的話,那麼答案是:x的值不變。

因為0x20就等於0b00100000,

而x |=0x20 就等於是x = x | 0x20。

而 | 運算的意義是:按二進位制的對應位「或」運算。而0x20的二進位制中為1的那一位,原來也是1,1和1的「或」仍為1。而0x20的二進位制中其餘位都是零,任何碼和0的「或」不變。

c語言中0x20是什麼意思?

3樓:匿名使用者

這是一種整型常量的表示方式。以0x開頭的整型常量,代表後續字元為16進製表達。於是0x20也就是16進位制的20,即10進位制的32。

另外,0x20作為單位元組表示,可以用於字元型變數的賦值,用於char時,其代表ascii碼值0x20,即字元空格' '。

4樓:慕容冰綃

一般式指十六進位制的20,等於十進位制32

另外它還可能代表ascii字元等等

5樓:匿名使用者

十六進位制 換算十進位制就是32

6樓:青蘋果

以0x開頭的是十六進位制的數;

0x20=2*16+0=32

c語言中~x是什麼意思

7樓:該使用者未註冊

在c語言中,~x代表的意思是按位取反的意思。

將x按位取反

比如x = 10101010b。

那麼~x = 01010101b。

還要注意,在c語言中,還有邏輯取反符號「!」,「!x」的返回值只有0和1兩種。如果x為0,則!x=1。如果x不等於0.則!x的返回值為0。

擴充套件資料:c語言關鍵字。

signed    宣告有符號型別變數

unsigned  宣告無符號型別變數

struct    宣告結構體變數

union     宣告聯合型別

enum      宣告列舉型別

switch    用於開關語句

case      開關語句分支

default   開關語句中的「其他」分支auto      宣告自動變數,預設時編譯器預設為此const     宣告只讀變數

static    宣告靜態變數

register  宣告暫存器變數

8樓:匿名使用者

在c語言中,~x代表的意思是按位取反的意思。

使用~進行按位取反時,將某個數x的二進位制的每一個bit取反即可得到~x的值。

如~0x37,即~(0011 0111),得到的答案應該為:

~0x37=~(0011 0111)=(1100 1000)=0xc8。

需要注意的是,在c語言中,還有一個邏輯取反符號「!」

「!x」的返回值只有0和1兩種。如果x為0,則!x=1如果x不等於0.則!x的返回值為0。

9樓:紅紅紅紅貨

邏輯判斷

,歎號是非的意思,x是各變數,如果x為零那麼!x就是1,相反是0。

若x是「0」(為假),則「!x」就不是零(為真),則裡面為真,進入if下的大。

若x不是「0」(為真),則「!x」就是零(為假),則裡面為假,跳過if下的大。

擴充套件資料:c語言運算子列表:

1、優先順序1級

結合方向左結合(自左至右)

()圓括號

下標運算子

->指向結構體成員運算子

.結構體成員運算子(請注意它是一個實心圓點)2、優先順序2級

結合方向右結合(自右至左)單目運算子

!邏輯非運算子

~按位取反運算子

++自增運算子

--自減運算子

-負號運算子

(型別)型別轉換運算子

*指標運算子

&地址與運算子

sizeof長度運算子

10樓:匿名使用者

c語言:x=x-『0』是什麼意思

這是一個ascii字元運算,字元值運算就要提及ascii字元碼錶。

ascii(american standard code for information interchange,美國標準資訊交換**)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統。

計算機資料在儲存和運算時都要使用二進位制數表示(因為計算機用高電平和低電平分別表示1和0),如,a、b、c、d這樣的字母(包括大寫)、以及0、1等數字,還有一些常用的符號(例如*、#、@等)在計算機中儲存時也要使用二進位制數來表示,ascii編碼規定了常用符號用哪些二進位制數來表示。

在ascii碼錶中,字元0的數值是48,

所以:x=x-『0』,

就是:x=x-48,

這個式子的意思是:把變數x的值減去48,再把結果賦回給x

11樓:兔子和小強

將x按位取反

比如x = 10101010b

那麼~x = 01010101b

12樓:匿名使用者

這個是c語言中唯一的三目運算子。

string1 ?a : b

意思是說:當string語句判斷是真的時候,該語句使用結果a,否則是用結果b。

13樓:匿名使用者

/*~ 按位取反

*/# include "stdio.h"

int main(void)

/*在vc++6.0中的輸出結果:

------------------------b = 0xfffffffc

b = -4

press any key to continue------------------------------*/

14樓:匿名使用者

(!x++||y--)

這個邏輯大概就是

x等於0或者y不等於0最後表示式結果為1

++和--是後做的

還有如果x為0,y就不--了

15樓:匿名使用者

這個是一個條件語句的簡寫

就相對於:

if aa

belse

c如果aa為真,則執行b,否則執行c

16樓:匿名使用者

對x值取反。用來對一個二進位制數按位取反,即將0變1,將1變0。如10的二進位制是1010,取反後是0101,那邊麼取反後的十進位制的值就是5.

c語言中符號&,|,^是什麼意思?例如x=a&b,x=a|b,x=a^b分別是什麼意思?

17樓:匿名使用者

,||&與,|或,^du異或

這些運zhi算都是二進位制dao運版算

例:a=7 , b=10

x=a&b = 2(權bit0111&bit1010 = bit0010 );

x=a|b = 15(bit0111|bit1010 = bit1111 );

x=a^b = 13(bit0111^bit1010 = bit1101 );

18樓:靜佳園瑞

這些全是位運算的符號

&與,|或,^異或

這些運算都是二進位制運算

你可以去查查你的教材就好

19樓:匿名使用者

與 或 異或 的意思x=a&b的意思就是將a&b的結果賦給x 其他也是一樣

c語言中i=ox20是什麼意思

20樓:

在c語言中0x是十六進位制的寫法,在數字前加0x表示該數字為一個十六進位制的數。0x20,其數值的大小為十進位制的32;

c語言中可以在宣告一個變數的時候,直接將其初始化,i = 0x20,表示初始化變數 i 時,將 i 的值設定為0x20。

21樓:夜禮服假面

ox是代表十六進位制數

i=0x20,即十六進位制的20,十進位制數=32

22樓:喲呵虎虎虎虎

應該是:i=0x20,即二進位制的20,十進位制數=32,對應空格的ascii碼

c語言中%#x是什麼意思

23樓:匿名使用者

%x是16進位制輸出

.%8x是輸出8位

%#x是帶格式輸出, 效果為在輸出前加0x.

所以 這裡就是以16進位制輸出y值,並在前面加0x字首, 如果輸出小於8位,那麼實際輸出8位,左側補空格.

比如 y=0x20那麼會輸出

y= 0x20

如果y=0x12345678

那麼會輸出

y=0x12345678

24樓:呂兒緱惠

x+=a等價於x=x+a

賦值運算子當中,有一類c/c++獨有的複合賦值運算子。它們實際上是一種縮寫形式,使得對變數的改變更為簡潔。

total=total+3;

它的意思是本身的值加3,然後在賦值給本身。為了簡化,上面的**也可以寫成:

total+=3;

同樣,x*=y+7

等價於x=x*(y+7) r%=p

等價於r=r%p

複合賦值運算子有下列這些:

符號功能

+=加法賦值

-=減法賦值

*=乘法賦值

/=除法賦值

%=模運算賦值

<<=左移賦值

>>=右移賦值

&=位邏輯與賦值

|=位邏輯或賦值

^=位邏輯異或賦值

那麼看了上面的複合賦值運算子,有人就會問,到底total=total+3;與total+=3;有沒有區別?答案是有的,對於a=a+1,表示式a被計算了兩次,對於複合運算子a+=1,表示式a僅計算了一次。一般的來說,這種區別對於程式的執行沒有多大影響,但是當表示式作為函式的返回值時,函式就被呼叫了兩次(以後再說明),而且如果使用普通的賦值

運算子,也會加大程式的開銷,使效率降低。

25樓:勤鴻煊刁禎

+=指的是

x=x+?*=

指的是x=x*?

c語言的執行順序是從右到左

x+=(

x*=2

)先計算右邊的

x*=2再用

結果帶入到x+=()中.

26樓:壤駟興文韶起

一句話描述:

a+=1-->等價於

a=a+1;

這是因為編譯器再對**進行語義分析的時候會把a=a+1

翻譯成a+=1.我們寫**這麼寫的話就可以適當提高效率。

有關為什麼會翻譯成這個。樓主可參考《編譯原理》相關知識,重點是看看字首、中綴、字尾表示式相關知識點。

27樓:匿名使用者

強制輸出進位制識別符號號,即輸出0x

28樓:

在輸出時字首加 0x 或0x

c語言中x<<1什麼意思

29樓:匿名使用者

對於x中儲存的整數左移1位(相當於乘以2),然後按照8進位制輸出。

30樓:匿名使用者

<<:左移運算,與抄

其對用的襲有》(右移)

實現過程是把該變bai量先變成

du2進位制數,zhi然後進行移位,在用0補齊。

dao例:unsigned char x;

x=127;//(二進位制:0111 1111)//x<<1後的結果:1111 1110 <=> 254printf(''%o",x<<1); //按8進位制輸出376說明事項1:

移位運算都是2的整數倍,*2 和<<1的運算結果是一樣的,但是移位的執行效率要高

2:有符號數不要輕易使用移位,符號位比較容易出問題。

31樓:手機使用者

關係運算子…書上有吧

在c語言中<<是什麼意思?

32樓:匿名使用者

《是左移操作符,將數字的二進位制形式按位左移,末尾補零

例如:對於unsigned int x=015,x<<1,x<<2,x<<3的分析。

unsigned int x=015,

x=015,用0打頭的說明是八進位制數,由於後面要進行左移操作,所以轉換為二進位制看比較方便。

015(八進位制)=1101(二進位制)

<<:這個是左移操作符,按位左移,末尾補零

>>:這個是右移操作符,按位右移,前端補零

x<<1:左移一位,1101(二進位制)左移一位變為11010(二進位制),11010(二進位制) = 26(十進位制)

x<<2:左移兩位,1101(二進位制)左移兩位變為110100(二進位制),110100(二進位制) = 52(十進位制)

x<<3:左移三位,1101(二進位制)左移三位變為1101000(二進位制),1101000(二進位制) = 104(十進位制)

現在你應該也看出來了,左移n位就相當於原數乘以2的n次方

c語言中,x的絕對值怎麼表示,C語言中 絕對值 怎麼表示?

c語言中bai 通過相應的函式得du到x的絕對值,因zhi為資料資料型別不同 dao,相應的函內數不同。整型型別容 變數 整數 取絕對值 int abs int x long int labs long x long long int llabs long long x 浮點型別變數 小數 取絕對值...

c語言中a1,b2,c43的值為多少

逗號表示式的返回值是最後一個值 因此是43 逗號表示式的一般形式是 表示式1,表示式2,表示式n。其求解過程是 先計算表示式1,最後計算表示式n,最後整個逗號表示式的值為表示式n的值。因此,a 1,b 2,c 43 的值為43.在c語言中 int a 1,b 2,c 3 表示式 a b a b 的值...

c語言中, 0x5b這種表達方式對嗎?也就是說16進位制的整型

沒有任何問題。0x5b只是16進位制方式表示的整數,我們都知道整數是可以是正數或負數的,所以這樣表示沒有問題。不論是二進位制 八進位制 十進位制 十六進位制甚至是三十二進位制還是多少多少進位制,都只是一種數值的表示方法而已,它們歸根結底表示的都是整數,理解了這一點就好了。對補充資訊的回答 我說過,這...