當前位置:首頁 » 編程語言 » c語言列印二進制

c語言列印二進制

發布時間: 2022-07-02 21:34:45

c語言中怎麼輸出數據的二進制

二進制數不能像十進制那樣%d直接輸出。

如果想輸出一個數的二進制可以通過函數把其轉成2進制字元串再將其輸出。

itoa函數

原型:char*itoa(intvalue,char*string,intradix);

參數:int value 被轉換的整數,char *string 轉換後儲存的字元數組,int radix 轉換進制數,如2,8,10,16 進制等

功能:將任意類型的數字轉換為字元串。在<stdlib.h>中與之有相反功能的函數是atoi。

參考代碼:

1、

#include<stdlib.h>
#include<stdio.h>
intmain(void)
{
intnumber=10;
charstring[25];
itoa(number,string,2);
printf("十進制數:%d,二進制數:%s ",number,string);
return0;
}
/*
十進制數:10,二進制數:1010
*/

2、

voidprint_bin(intn)
{
intl=sizeof(n)*8;//總位數。
inti;
if(i==0)
{
printf("0");
return;
}
for(i=l-1;i>=0;i--)//略去高位0.
{
if(n&(1<<i))break;
}

for(;i>=0;i--)
printf("%d",(n&(1<<i))!=0);
}

❷ c語言以二進制輸出

#include<stdlib.h>
#include<stdio.h>
voidmain(){
intnumber=43;charstring[100];
itoa(number,string,2);
printf("原數=%d二進制數=%s ",number,string);
}

這個可以滿足你嗎?讓程序輸出反碼補碼好像要求有點高。你根據我寫的程序自己算一下反碼補碼並不是一件很難的事。

❸ C語言二進制怎麼表示

c++中負數存儲時,不是簡單的將符號位置為1,而是採用補碼的形式存儲的,負數最高位為符號位,也就是1,其餘全部取反,然後再加1。

假如操作系統是32位,-1的二進制存儲不是:1000
0000 0000 0001,而是:1111 1111 1111 1110+1即1111 1111 1111 1111。

(3)c語言列印二進制擴展閱讀:

C語言面向過程,與C++、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。

❹ c語言怎樣標准輸出二進制

C標准沒有輸出二進制的,不過用itoa()可以實現到二進的轉換
example
int
a
=
10;
char
binbuf[32];
//存儲二進制字串的空間
printf("%s\n",
itoa(a,
binbuf,
2));
//最後一個參數2表示2進制

❺ 在C語言里怎麼才能輸出 二進制的結果

來兩個常用的方法:

一:運用除2取余法(我就不復制粘貼了,自己網路即可),結果存儲在數組中,然後輸出數組。

二:如:對於int,一般是32位,可以用for循環實現,如下:

inta;//要輸出的數
boolop=false;
for(inti=31;i>=0;i--){
if(a&(1<<i))op=true;
if(op)printf("%d",a&(1<<i));
}
if(!op)printf("0");
puts("");

❻ C語言中怎樣輸出一個二進制的數

//我們用按位運算符:右移>>和按位運算符與^,這兩個功能就可以實現。
#include<stdio.h>
voidprintBinary(intnumber);//這是聲明一個自定義的函數,讓編譯器知道我們造了一個這么個函數,功能:將整數以二進制形式輸出。

intmain()
{
printBinary(22);//括弧裡面可以填上你要輸出的整數,比如要輸出22的二進制形式
return0;
}
voidprintBinary()//自定義一個函數printBinary
{
inttemp=sizeof(number)-1;//定義一個變數:如果你的編譯器是32位的,也就是inttemp=31;

while(temp>=0)//temp是循環的次數,不需要糾結判斷是>=還是>,寫完之後檢驗一下就知道哪個對了。

intvalue=number>>temp^1;//a>>temp。temp移動後,是把這個整數的二進制形式中最後一位,依次與1進行按位與運算。假如temp=31,就是把這個整數的二進制形式右移31位,只剩下了這個整數的二進制形式的開頭第一個數字,然後與1進行按位與運算。真則為1,假則為0。

printf("%d",value);//每次輸出整數的二進制形式的一個數字,從開頭開始輸出。.
temp--;//按位右移循環,直到把整數內存中所有的位移完畢。從內存中二進制形式的第一位開始。

}

❼ 怎麼用c語言輸出二進制碼

在C語言的標准輸出中,有16進制,10進制和8進制的輸出格式,但是沒有二進制的輸出格式。所以要想輸出二進制,只能靠自己寫函數進行輸出了。

基本思想為通過移位操作+與操作取出各個位上的值,然後對其進行輸出即可。

以32位無符號整型數據二進制輸出為例,代碼如下:

#include<stdio.h>
voidbinary_print(unsignedintv)
{
inti;
intbit;
intsize=sizeof(v)*8;
//這里的size是輸入參數v的位數,直接用32代替也可以,但寫成sizeof(v)*8這樣更為通用。
for(i=0;i<size;i++)
{
bit=v&(1<<(size-i-1));//提取出第i位的值
if(bit==0)putchar('0');
elseputchar('1');
}
}

❽ C語言能輸出二進制數嗎

當然可以輸出了的啊,但是在輸出的時候需要進行轉換的,現在提供一個十進制到任意進制的轉換程序,你可以在編寫程序的時候參考一下。
源程序如下:
#include<stdio.h>
#include<math.h>
void main()
{
int i=0,n,j,a[20],b[20],k,c=0;
double m,x,d;
printf("請輸入需要轉換的數:");
scanf("%lf",&x);
printf("請輸入要轉換成的進制(1<N<=16):");
scanf("%d",&n);
if(x<0)
m=fabs(x);
else
m=x;
k=(int)m;//強制類型轉換,可以使用k=(int)m;代替,從而更加的一目瞭然
while(k)//判定需要轉換的數是否變為0
{
a[i++]=k%n;//取余,進行進制轉換,但是順序與正確值相反
k/=n;//轉換一位之後進行相應的變化
}
if(m!=(int)m)//選擇性計算,如果是整數就不用進行這一步的計算了,這樣可以節約程序的運行時間
{
d=m-(int)m;//取小數部分
while(d!=0)
{
b[c]=(int)(d*n);//演算法為×N取整
d=d*n-b[c];
c++;
if(c>=10)
break;//主要是控制小數後面萬一出現無限小數的時候好跳出循環以免出現死循環
}
}
printf("轉換結果為:");
if(x<0)
printf("-");
for(j=i-1;j>=0;j--)//反序輸出,大於10的數字進行相應的變化
{
if(a[j]==10)
printf("A");
else
if(a[j]==11)
printf("B");
else
if(a[j]==12)
printf("C");
else
if(a[j]==13)
printf("D");
else
if(a[j]==14)
printf("E");
else
if(a[j]==15)
printf("F");
else
printf("%d",a[j]);
}
if(m!=(int)m)//選擇性輸出,這樣可以節約輸出時間和程序的運行時間
{
printf(".");
for(j=0;j<c;j++)//正序輸出
{
if(b[j]==10)
printf("A");
else
if(b[j]==11)
printf("B");
else
if(b[j]==12)
printf("C");
else
if(b[j]==13)
printf("D");
else
if(b[j]==14)
printf("E");
else
if(b[j]==15)
printf("F");
else
printf("%d",b[j]);
}
}
if(c>=10)//如果是無限小數則在後以省略號表示
printf("......");
printf("\n");//輸出換行,以使程序的輸出結果美觀
}
可能在程序的編寫上有點臃腫的,使用函數可以簡化很多的,但是最為參考就沒有使用函數的啦,你在使用的過程中可以適當修改使用。祝你學的開心!

❾ 如何在c語言中輸出二進制數

二進制是不可以直接輸出的,但是可以用程序輸出
#include<stdio.h>
void
f(int
n)
{
if(n)
f(n/2);
else
return;
printf("%d",n%2);
}
int
main()
{
int
n;
while(1)
{
scanf("%d",&n);
if(n<0)
break;
if(n==0)
printf("0");
f(n);
printf("\n");
}
return
0;
}

❿ C語言中printf直接打出2進制數是%什麼16進制是什麼

C語言中,控制printf函數輸出格式的是格式字元,printf沒有直接打出2進制數的格式符,直接打出16進制的格式符是x格式符,即%x。

printf函數中輸出的格式為printf("<格式化字元串>", <參量表>),格式化字元串由格式控制、和輸出表列兩部分組成,其中格式控制包含格式聲明和普通字元。

格式聲明由「%」和格式字元組成,如%d、%f等。它的作用是將輸出的數據類型轉換為指定的格式然後輸出。普通字元是需要在輸出時原樣輸出的字元。

(10)c語言列印二進制擴展閱讀

C語言printf函數格式字元:

1、%d,按整型數據的實際長度輸出。

2、%md,m為指定的輸出欄位的寬度。

3、%ld,輸出長整型數據。

4、o格式符,以八進制整型式輸出整數。

5、x格式符,以十六進制數形式輸出整數。

6、u格式符,用來輸出unsigned型數據,即無符號數,以十進制形式輸出。

7、c格式符,用來輸出一個字元。

8、s格式符,用來輸出一個字元串。

9、f格式符,用來輸出實數(包括單雙精度),以小數形式輸出。

10、e格式符,以指數形式輸出實數。

11、g格式符,用來輸出實數,它根據數值的大小,自動選f格式或e格式(選擇輸出是占寬度較小的一種),且不輸出無意義的零。

12、p格式符,用於變數地址的輸出。

13、%[scanfset]:

scanfset 有兩種形式:一種是以非 「^」 字元開頭的 scanset , 表示在讀入字元串時將匹配所有在 scanfset 中出現的字元,遇到非scanfset 中的字元時輸入就結束;

另外一種形式是以 「^」 字元開頭的scanfset ,表示在讀入字元串時將匹配所有不在scanfset 中出現的字元,遇到scanfset 中的字元輸入就結束。

熱點內容
什麼是身份證密碼 發布:2025-02-04 05:43:41 瀏覽:784
雲伺服器江蘇 發布:2025-02-04 05:38:46 瀏覽:236
演算法及vb 發布:2025-02-04 05:33:37 瀏覽:100
安卓手機怎麼自檢電池 發布:2025-02-04 05:31:31 瀏覽:409
兩種存儲 發布:2025-02-04 05:26:43 瀏覽:203
手機php源碼 發布:2025-02-04 05:08:22 瀏覽:548
全戰帝國與拿戰哪個配置高 發布:2025-02-04 04:59:39 瀏覽:754
海控聯盟怎麼下載安卓版 發布:2025-02-04 04:55:52 瀏覽:767
妖盪三界安卓叫什麼 發布:2025-02-04 04:54:24 瀏覽:835
資料庫表的備份 發布:2025-02-04 04:53:50 瀏覽:564