c語言程式輸入十進位制整數,輸出該數值的二進位制表示使用

2021-03-04 06:28:34 字數 3051 閱讀 3534

1樓:bm百夢

除二取餘法,主函式自己寫。

void binary(int n);

for(j=i-1;j>=0;j--)

printf("%d",a[i]);

}大概是這樣子

2樓:匿名使用者

#include

void main()

3樓:匿名使用者

#include

// main

int main()

;char* p = b;

int i = 32;

while(i--)

printf_s("%s\n", b);

return 0;}

c語言簡單問題:僅使用位運算子和循壞實現十進位制整數的二進位制列印,且不使用陣列

4樓:匿名使用者

0x10000000 要改成 0x80000000

位運算子怎麼打出來啊?

5樓:蜘蛛俠

位運算子》,<<,~,|,^,&是嗎?都在鍵盤上啊

>>和《就是兩個大小於號啦,~^&都在數字鍵上,|在\鍵上.

c語言的按位運算子怎麼操作!?

6樓:匿名使用者

位運算在很多系統程式中常要求在位(bit)一級進行運算或處理。c語言提供了位運算的功能, 這使得c語言也能像組合語言一樣用來編寫系統程式。

一、位運算子c語言提供了六種位運算子:

& 按位與

| 按位或

^ 按位異或

~ 取反

<< 左移

>> 右移

1. 按位與運算 按位與運算子"&"是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。

只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。

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

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

main()

2. 按位或運算 按位或運算子「|」是雙目運算子。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有乙個為1時,結果位就為1。參與運算的兩個數均以補碼出現。

例如:9|5可寫算式如下: 00001001|00000101

00001101 (十進位制為13)可見9|5=13

main()

3. 按位異或運算 按位異或運算子「^」是雙目運算子。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。

參與運算數仍以補碼出現,例如9^5可寫成算式如下: 00001001^00000101 00001100 (十進位制為12)

main()

4. 求反運算 求反運算子~為單目運算子,具有右結合性。 其功能是對參與運算的數的各二進位按位求反。

例如~9的運算為: ~(0000000000001001)結果為:1111111111110110

5. 左移運算 左移運算子「<<」是雙目運算子。其功能把「<< 」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數,

高位丟棄,低位補0。例如: a<<4 指把a的各二進位向左移動4位。

如a=00000011(十進位制3),左移4位後為00110000(十進位制48)。6. 右移運算右移運算子「>>」是雙目運算子。

其功能是把「>> 」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。

例如:設 a=15,a>>2 表示把000001111右移為00000011(十進位制3)。應該說明的是,對於有符號數,在右移時,符號位將隨同移動。

當為正數時, 最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。turbo c和很多系統規定為補1。

main()

請再看一例!

main()

7樓:本科科長

簡單說,c程式設計的時候輸入的都是十進位制數字,但如果你要對二進位制數字進行運算,就要用這種按位運算的符號。此前編譯程式先要把十進位制變成二進位制,比如int x=67的二進位制是這樣的。

67->00000000 00000000 00000000 00100011

比如:&:有0則結果為0。 1&1=1, 其餘組合為0

比如67&1=1

|:有1則結果為1。 0|0=0, 其餘組合為1

比如67|1=67

^:異或。相反則為1

比如67^1=66

~取反: 1變0,0變1

比如67取反就變成了

11111111 11111111 11111111 11011100

也就是-66

>>:右移: 上面的就變成了00000000 00000000 00000000 00010001,也即33

<<:左移:上面的就變成了00000000 00000000 00000000 01000110,也即134

8樓:匿名使用者

&按位與,|按位或,^按位異或,-求補,>>左移,<<右移.與&一般用來將某數的某些位置零.

設二進位制是1101001的數,如果要將第四位置0,就拿它與11101111進行與

或|一般用來將兩個數合成,

比如00110011與11000000或的結果11110011異或^用來將某數的某些位取反

比如00011100將第三四位取反,就將它與00110000進行異或>>左移,算術運算中是將某數除二,邏輯中是移位《右移,算術運算中是將某數乘二,邏輯中是移位如0001100邏輯左移2位0110000,1111100算術右移2位11111111,相當於除四-求補,求乙個數的相反數

9樓:標苦運先

編寫程式,從鍵盤輸入十進位制正整數,然後輸出它的十進位制值,以及相應的八進位制 十六進位制值

include void main while binary 0 printf 十進位製數是 n printf d n decimal getchar getchar 好了。兩個一樣的這種問題都給你解決啦。c 的 include stdio.h include iomanip.h void main...

輸入整數,分別輸出該整數的八進位制,十進位制,十六進位制

include stdio.h int main int argc,char argv 執行樣例 include int main 編寫程式輸入乙個正整數分別按十進位制,八進位制和十六進位制輸出該數 輸出形式選擇 d即輸出十進位製數,o即輸出八進位製數,x即輸出十六進位製數,具體如下 include...

用c語言編寫輸入二進位製數,輸出十進位製數

lude stdlib.h main x while x 0 printf d a x printf n system pause 再送你乙個進製 轉換的問題 把十進dao製數轉換為其它進製 include stdio.h include stdlib.h main px while px 0 pr...