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...