C語言中,char a6,b ba《2這樣寫的格式不正確嗎,為什麼,謝謝

時間 2021-12-20 06:35:36

1樓:

應該不行吧,char是字元型別,而字元型別中0~31應該是操作符,也許不可以賦值吧

試一下改為:

int a = 6, b; b = a<<2;

2樓:匿名使用者

char a = (char)6,b;

b = ((int)a)<<2;

char a = 6, b; b = a<<2 是什麼意思,能不能把詳細步驟寫一寫,

3樓:匿名使用者

《為移位運算子

char a = 6, b a為6,變成二進位制為110a<<2 為將a的二進位制制向左移2位,後面補0 ,變為11000=24

所以b=24

4樓:

看來你的c有待加強,《是位移運算子,是左移物件的作用。用你的例子來說a=6的話在計算機中二進位制數是 a:00000110,左移的話就變成了00011000,即使把整體後面加了兩個零,然後賦值給了b,結果就是b=24(把00011000化成十進位制即可),另外給樓主講下,與之對應的還有右移運算子》,作用正好相反。

5樓:匿名使用者

char a = 6, b; //這樣寫是不合法的,應該是int b, a = 6;

b = a << 2; //可以寫成b = (a << 2); 即a 左移兩位,把值賦給b,a 的值不變

附:c語言運算子及其優先順序彙總表口訣

圓下箭頭一頓號

非凡增減富強針地長

三乘除,四加減,五移位

千萬別把魚忘記,它在盛飯的廚子裡

小燈大燈燈燈不等

爸餵魚,舅疑惑,裸雞也疑惑

十三姨,十四父,十五逗,兜到低

char a=6,b; b=a<<2; 運算結果是什麼啊?

6樓:匿名使用者

<< 按位左移2位,即乘以4(在表示範圍內,可以這麼理解,因為一直這樣移動就會超出表示範圍,與實際結果會有出入的)

6的二進位制表示 110,左移兩位變成11000,即高位左移,後面補0,這個二進位制就變成了24

char a=6,b; b=a<<2; 那b最後等於多少?

7樓:匿名使用者

a=6;

a是字元型,二進位制8位資料,a存放二進位制數0000011000000110b<<1=00001100b00000110b<<2=00011000b=18h=24d因此b最後等於24

c=a^b<<2在c語言中什麼意思?如果a=3,b=6

8樓:匿名使用者

^按位異或運算子,相應位相同,則結果為0,否則為1《左移運算子,優先順序高於^

c=a^b<<2=a^(b<<2)

b=6,b<<2=24  (左移一位相當於乘2)a=3=00000011 b

b<<2=24=00011000 b

^=----------------

00011011 b = 27 (d)

9樓:匿名使用者

a和b先做異或運算,然後把結果左移2位。

c語言a<<2的意思?若a=2,b=a<<2,那麼輸出b為多少?

10樓:鬱草小沙彌

《是左移號,a為2的話,其轉為二進位制數為00000010, a<<2,a左移兩位,右端補零,變為00001000,

即8,賦給b,a本身不變.

11樓:匿名使用者

8,表示2往左移2位。

char a,b; a='a'+'5'-'3'; b=a+'6'-'2';

12樓:洛雨曦

a的ascii碼為65,b的為66依次類推a的ascii碼為97,b的為98依次類推0的ascii碼為48,1的為49依次類推字元型資料可以與整型資料進行算術運算,進行時是用該字元的ascii碼進行的

所以a='a'+'5'-'3' 所以a=65+53-51即67,它對應的是c,所以a='c'

b=a+'6'-'2' 所以b=67+54-50即71(切記a剛才已經變為67),b='g'

13樓:金色潛鳥

5和3的ascii編碼差2,'5'-'3' 得2。'a' +2 就是比 a 的編碼大2的碼 是 'c'。printf("%c",a); 打出 c.

b = a+'6'-'2' = 'c' + '6' - '2'. 6 和 2 編碼差 4,比 'c' 大 4 的 字元 是 'g'.printf("%c",b);

打出 g

14樓:匿名使用者

每個字元都對應乙個asicc碼,去書的附錄里查一下'a','5','3'的碼值,掰手指頭算一下就行了

如果輸出的是char就在查一下碼值對應的字元,就是結果了

15樓:匿名使用者

結果,a值為c的ascii碼,即'c'

b值為g的ascii碼,即'g'

char c=a^b<<2 a=1,b=2. c=?

16樓:張卓賢

a=1 其二進位製碼為 00000001b=2 其二進位制嗎為 00000010

^是異或運算(二進位製碼的)二進位製碼相同為0 不同為1<<是二進位製碼的左移運算 就是將二進位製碼的1向左移動n位《運算的優先順序比^高

所以 c=a^b<<2

就是說 先把b的二進位製碼(00000010)左移兩位 00001000

然後與a(00000001)進行異或運算 得 00001001這個二進位製碼轉換為10進製 就是9

在c語言中,設有char a='c' ,b='a' ;執行語句printf("%d,

17樓:聽不清啊

設有char a='c' ,b='a' ;執行語句printf("%d,%d",b,a-b);後,輸出結果是

a、65,2

因為在c中,char 等同於乙個8位有符號整數,只是內作「字元」解讀。容所以,char a='c' ,b='a' ;等同於char a=67 ,b=65; 在以%d格式輸出時的值就是 65,2

18樓:匿名使用者

選擇a,這個就是把對應的字母轉換成ascii碼值進行運算

C語言中,如果char a則能使表示式0a2為真的a取值有幾個

無論a等於幾,表示式 0 char a 的範圍是 1 byte,可描述 0x00 到 0xff,共 0xff 1 個值,即 10進製 256 個值。如果 是 問 邏輯表示式 0 無恥的改一下答案 char的取值範圍也不一定就是0 255,不同的機器不同的作業系統都可能不一樣.maxbit sizeo...

2 在c語言中表示什麼

你說的應該是printf函式吧 通俗的說 中m標示寬度,n標示小數點後顯示幾位。你的就是顯示5個寬度,其中顯示2位小數。int printf const char format,argument format 引數輸出的格式,定義格式為 flags width perc f n h l type 規...

c語言中if j 2 是什麼意思

劉2星雨 j 2如果是非0,結果則進入if語句,執行if結構中的語句,如果等於0,就不執行,直接跳過。這個判斷說白了就是如果j是奇數,就進入if,否則不進入直接跳過。 if j 2 是條件分支語句,等價於if j 2 0 條件滿足時執行後面的體語句,不滿足時跳過體語句。if是條件分支語句關鍵字,j ...