❶ 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;
}