❶ c語言編寫一個程序,將十進制整數n 轉換成二進制數
#include <stdio.h>
int transfer(int x)
{
int p=1,y=0,yushu;
while(1)
{
yushu=x%2;
x/=2;
y+=yushu*p;
p*=10;
if(x<2)
{
y+=x*p;
break;
}
}
return y;
}
void main()
{
//進制轉換函數的聲明
int transfer(int x);
int x;
printf("請輸入一個十進制數:");
scanf("%d",&x);
printf("轉換成二進制數是:%d ",transfer(x));
}
(1)c語言編寫二進製程序擴展閱讀:
c語言書寫規則:
1.一個說明或一個語句佔一行。
2.用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3.低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
網路-c語言
❷ 如何用c語言編寫二進制和十進制之間的轉換
二進制轉十進制
n
為輸入的二進制數,d用來處理該數。
k為標志位,當k為1時表示輸入的數有問題,需要重新輸入。
i為每次分解的個位數;j為二進制的權值;m為累計的十進制和;p為輸入的數的位數,超過10時,該數越界,需要重新輸入,定k=1。
程序如下:
#include
<conio.h>
main()
{
long
int
n,d;
int
k,i,j,m,p;
do
{
k=0;
m=0;j=1;i=0;p=0;
printf("\ninput
an
number
only
includes
0
or
1:");
scanf("%ld",&n);
if(n<0)
k=1;
d=n;
while(d)
{
i=d%10;p++;
if(i>1
||
p>10)
{k=1;break;}
m+=i*j;
j=j*2;
d/=10;
}
}
while(k==1
||
m==0);
printf("\n
the
number
is
%d\n",m);
getch();
}
❸ 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輸出為小寫字母
}
(3)c語言編寫二進製程序擴展閱讀
C語言中定義整型數據的十六進制數:
unsigned int hex_val = 0x123;
//定義了一個整型變數並賦以初始值為一個十六進制常量。
if (scanf("%x", &hex_val) != EOF)
{
printf("它的八、十進制分別=%o、%d ", hex_val, hex_val);
}
❹ 如何用C語言編一個打開二進制文件(.exe)的程序求完整程序。
可以用system()函數,WinExec()函數,CreateProcess()函數
其中System()最簡單,CreateProcess()函數最復雜,但功能多。
都要包含頭文件<windows.h>
system("a.exe"); //最簡單的這樣就可以了
復雜的如下
charszCommandLine[]="a.exe";
STARTUPINFO si = {sizeof(si)};
PROCESS_INFORMATION pi;
si.dwFlags = STARTF_USESHOWWINDOW; //指定wShowWindow成員有效
si.wShowWindow=TRUE; //此成員設為TRUE的話則顯示新建進程的主窗口
BOOLbRet=CreateProcess(
NULL, //不在此指定可執行文件的文件名
szCommandLine, //命令行參數
NULL, //默認進程安全性
NULL, //默認進程安全性
FALSE, //指定當前進程內句柄不可以被子進程繼承
CREATE_NEW_CONSOLE, //為新進程創建一個新的控制台窗口
NULL, //使用本進程的環境變數
NULL, //使用本進程的驅動器和目錄
&si,
&pi);
❺ 用C語言編寫二進制轉換十進制的程序。
一下兩個程序均在VC在編譯通過。
/*
如果這個二進制數比較大的話,
大到只能用數組儲存這個二進制數,
當然如果大到轉化成10進制int存不下的情況那另當別論
*/
#include<stdio.h>
#include<string.h>
int
main()
{
char
a[33];
int
i,
num
=
0;
scanf("%s",
a);
for(i=strlen(a)-1;
i>=0;
i--)
{
num*=2;
/*如果用位運算的話,速度會更快*/
num+=a[i]-'0';
}
printf("%d\n",
num);
return
0;
}
/*
如果這個二進制數的位數不超過10位的話
可用這個程序
*/
#include<stdio.h>
int
main()
{
int
num
=
0,
a,
j=1;
scanf("%d",
&a);
while(a)
{
num
+=
(a%10)
*
j;
a
/=
10;
j
*=
2;
}
printf("%d\n",
num);
return
0;
}
❻ 請問用C語言編寫一個十進制轉換成二進制或八進制或十六進制的程序需要怎麼打
#include<stdio.h>
voidmain()
{
//進制轉換函數的聲明
inttransfer(intx);
intx;
printf("請輸入一個十進制數:");
scanf("%d",&x);
printf("轉換成二進制數是:%d ",transfer(x));
}
inttransfer(intx)
{
intp=1,y=0,yushu;
while(1)
{
yushu=x%2;
x/=2;
y+=yushu*p;
p*=10;
if(x<2)
{
y+=x*p;
break;
}
}
returny;
}
(6)c語言編寫二進製程序擴展閱讀
C語言:整數轉換十六進制數和八進制
#include<stdio.h>
voidmain()
{
inti;
printf("請輸入一個十進制數:");
scanf("%d",&i);
printf("這個數轉換為十六進制數:%x ",i);
printf("這個數轉換為八進制數:%o ",i);
getch();
return0;
}