當前位置:首頁 » 編程語言 » c語言有沒有二進制行的數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言有沒有二進制行的數據

發布時間: 2022-08-17 17:26:13

c語言怎麼定義一個二進制數

C語言中沒有 「二進制數」這種類型,所以沒辦法直接定義;但可以直接定義16進制數。

例:

int main(){

int a;

scanf("%p",&a);//16進制數輸入%p是輸入一個十六進制的數scanf("%llx",&a);也可以輸入十六進制並且比較正規

printf("%d",a);//十進制輸出%d是輸出一個十進制的數

printf("0x%x",a);//16進制輸出printf("%llX ",a);也可輸出一個十六進制數如果紅色部分大寫X則輸出十六進制為大寫字母否則小寫x輸出為小寫字母

}

(1)c語言有沒有二進制行的數據擴展閱讀

C語言中定義整型數據的十六進制數:

unsigned int hex_val = 0x123;

//定義了一個整型變數並賦以初始值為一個十六進制常量。

if (scanf("%x", &hex_val) != EOF)

{

printf("它的八、十進制分別=%o、%d ", hex_val, hex_val);

}

Ⅱ c語言的二進制數值如何直接輸出

1、首先打開vc6.0, 新建一個項目。

Ⅲ 怎麼在C語言裡面輸入二進制數字

c語言不能直接表示二進制,沒有數字前綴表示。
例子如下:
假設有一個
int
類型的數,值為5,那麼,我們知道它在計算機中表示為:
00000000
00000000
00000000
00000101
5轉換成二制是101,不過int類型的數佔用4位元組(32位),所以前面填了一堆0。
(3)c語言有沒有二進制行的數據擴展閱讀
進制是一種計數的方式,常用的有二進制、八進制、十進制、十六進制。任何數據在計算機內存中都是以二進制的形式存放的。
我對進制的個人理解,二進制數是以2為計算單元,滿2進1位的數;八進制數是以8為計算單元,滿8進1位的數。
對於任何一個數字,我們都可以用不同的進制來表示,比如,十進制數12,用二進製表示為1100,用八進製表示為14,用十六進製表示為0xc。

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

C語言中,默認支持16進制的數據輸出,其實這個就是一個更容易閱讀的二進制顯示。
C語言的標准庫,沒有二進制輸出函數,需要自己寫,寫法主要有兩種:
1.
除以2和對2取余數的循環;
2.
位移操作和位與(&)操作;
第二種效率高些:
int dat = 12345;
int ibit = 0x01;
for(int i=31;i>=0;i--){
a[i] = (dat & ibit)==0 ? 0,1;
ibit << 1;
}
for(i=0;i<32;i++)
printf("%d",a[i]);

Ⅳ C語言二進制數怎麼寫

c語言中沒有二進制的格式輸出符號.
你可以用itoa函數很方便的將一個10進制int轉變成二進制字元串.
如:
int i;
char s[128];
scanf("%d",&i);
itoa(i, s, 2); /*3個參數,第一個是待轉換的數,第二個是存放轉換後的字元串,第三個即需要轉換的進制*/
printf("該數轉換為二進制是: [%s]\n",s);

補充一點,itoa函數的頭文件是stdlib.h
(你自己不查以前已經有的問題)

Ⅵ c語言讀取二進制數據文件

1、二進制文本使用fopen函數的二進制模式「rb」就可以打開。對於程序來說,不管後綴名如何,文件分為兩種類型:文本文件和二進制文件。 C語言里有一系列文件操作函數。區分文本和二進制文件,需要在打開文件時設置不同的控制符mode的變數即可。

2、fopen的函數原型:FILE * fopen(const char * path,const char * mode);
fopen函數的第一個參數是文件路徑,第二個參數是打開方式,有以下幾種方式:
r 以只讀方式打開文件,該文件必須存在。
r+ 以可讀寫方式打開文件,該文件必須存在。
rb+ 讀寫打開一個二進制文件,允許讀數據。
rw+ 讀寫打開一個文本文件,允許讀和寫。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 (原來的EOF符不保留)
wb 只寫打開或新建一個二進制文件;只允許寫數據。
wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。
wt+ 讀寫打開或著建立一個文本文件;允許讀寫。
at+ 讀寫打開一個文本文件,允許讀或在文本末追加數據。
ab+ 讀寫打開一個二進制文件,允許讀或在文件末追加數據。
上述的形態字元串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函數庫打開的文件為二進制文件,而非純文字文件。

3、常式:

#include <stdlib.h>
#include <stdio.h>
int main ()
{
FILE * fpPhoto, * fpText, * fpTarget ;
int iRead ;
char szBuf[100] ;

printf ("請輸入第一個文件名(jpg):\n") ;
gets (szBuf) ;
fpPhoto = fopen (szBuf, "rb") ;
printf ("請輸入第二個文件名(txt):\n") ;
gets (szBuf) ;
fpText = fopen (szBuf, "rb") ;
printf ("請輸入目的文件名(jpg):\n") ;
gets (szBuf) ;
fpTarget = fopen (szBuf, "wb") ;

if (!fpPhoto || !fpText || !fpTarget)
{
printf ("打開文件失敗!\n") ;
system("pause") ;
return -1 ;
}

while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpPhoto)) > 0)
fwrite (szBuf, 1, iRead, fpTarget) ;
while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpText)) > 0)
fwrite (szBuf, 1, iRead, fpTarget) ;

fclose (fpPhoto) ;
fclose (fpText) ;
fclose (fpTarget) ;
return 0 ;
}

Ⅶ C語言二進制怎麼表示

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

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

(7)c語言有沒有二進制行的數據擴展閱讀:

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

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

Ⅷ 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語言中怎樣表示二進制數據

c語言中沒有二進制的格式輸出符號.
你可以用itoa函數很方便的將一個10進制int轉變成二進制字元串.
如:
int i;
char s[128];
scanf("%d",&i);
itoa(i, s, 2); /*3個參數,第一個是待轉換的數,第二個是存放轉換後的字元串,第三個即需要轉換的進制*/
printf("該數轉換為二進制是: [%s]\n",s);

補充一點,itoa函數的頭文件是stdlib.h