❶ 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語言輸入數字轉換成2進制字元串原理
一般在程序裡面寫成除二取余數的方法來得到。跟二進制的數的取法手工演算法一樣。
任意數除2以後,如果有小數點,就在堆棧中寫進一個1,沒有小數就寫0。然後除完以後,把堆棧的數倒取出來,就成了該數字的二進制。
#include <iostream.h>
void divideData(const float number, int &integer, float &decimal); //分離出整數和小數部分.
void printBinaryForInteger(int &integer); //列印整數部分的二進制形式.
void printBinaryForDecimal(float &decimal); //列印小數部分的二進制形式.
int main()
{
float number;
int integer;
float decimal;
cout<<"Please input a decimal number for being converted: ";
cin>>number;
cout<<"\nThe binary number converted from your input "<<number<<" is: ";
divideData(number, integer, decimal);
printBinaryForInteger(integer);
if (integer==0) cout<<"0";
cout<<".";
printBinaryForDecimal(decimal);
cout<<endl;
return 1;
}
void divideData(const float number, int &integer, float &decimal)
{
integer = (int)number;
decimal = number - (float)integer;
}
void printBinaryForInteger(int &integer)
{
int k,a=0;
int b[32];
while (integer!=0)
{
k=integer%2;
b[a++]=k;
integer=integer/2;
}
while (a>0)
{
cout<<b[--a];
}
}
void printBinaryForDecimal(float &decimal)
{
int i=0;
int count=0;
int a[8]={0};
while (count<6) //小數部分取6位(也可用符號常量設置).
{
decimal*=2;
a[count++]=(int)decimal;
if (decimal>=1.0)
decimal-=1.0;
}
while (i<6)
{
cout<<a[i++];
}
}
//用於C編譯器時略作修改;只考慮了輸入數為正數.
❸ 請教c語言程序員朋友,怎樣運算才能輸出2進制結果
這是電腦(計算機)的原理決定的。程序員級是直接涉及硬體的編程,而對於電腦硬體來說全都是數字電路。所謂數字也是用電脈沖來模擬的,而且是二進制,只有0和1。多位的二進制數完全用0和1來寫不但冗長而且反而不直觀,因此大量使用的是十六進制,使用0-9,A-F來表示。
脈沖模擬出來只有低電平和高電平的0和1,是完全離散的,只有正整數,沒有小數點。所以在這里也用不上小數點。
❹ 如何在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語言中輸出二進制數
有八進制,十進制和十六進制,不過沒二進制,如果要,只能自己寫轉化
#include
void
main()
{
int
n
=
11;
printf("%o\n",
n);
printf("%d\n",
n);
printf("%x\n",
n);
}
❻ C語言中printf直接打出2進制數是%什麼16進制是什麼
C語言中,控制printf函數輸出格式的是格式字元,printf沒有直接打出2進制數的格式符,直接打出16進制的格式符是x格式符,即%x。
printf函數中輸出的格式為printf("<格式化字元串>", <參量表>),格式化字元串由格式控制、和輸出表列兩部分組成,其中格式控制包含格式聲明和普通字元。
格式聲明由「%」和格式字元組成,如%d、%f等。它的作用是將輸出的數據類型轉換為指定的格式然後輸出。普通字元是需要在輸出時原樣輸出的字元。
(6)c語言列印2進制擴展閱讀
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 中的字元輸入就結束。
❼ C語言二進制怎麼表示
c++中負數存儲時,不是簡單的將符號位置為1,而是採用補碼的形式存儲的,負數最高位為符號位,也就是1,其餘全部取反,然後再加1。
假如操作系統是32位,-1的二進制存儲不是:1000
0000 0000 0001,而是:1111 1111 1111 1110+1即1111 1111 1111 1111。
(7)c語言列印2進制擴展閱讀:
C語言面向過程,與C++、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。
❽ c語言的二進制數值如何直接輸出
沒有二進制直接輸出,可以自己編寫程序:
void
f(int
n)
{
if(n)
f(n/2);
else
return;
printf("%d",n%2);
}
上面是一個遞歸調用函數,它可以輸出n的二進制格式
❾ 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);
}