⑴ c语言,将十进制转化为二进制
十进制转二进制可以使用库函数itoa。
itoa函数原型:char*itoa(intvalue,char*string,intradix);
功能:将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。
nt value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。
参考代码:
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inti=10;
chara[100];
itoa(i,a,2);
printf("%s ",a);
return0;
}
/*
1010
*/
⑵ 怎么用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语言程序:十进制转换为二进制。
#include"stdio.h"
intmain()
{
intn;
inti=0,j;
charstr[100]={0};
charoutput[100]={0};
printf("请输入一个整数:");
scanf("%d",&n);
while(n)
{
str[i]=n%2+'0';
n=n/2;
i++;
}
for(j=0;j<i;j++)
output[j]=str[i-1-j];
printf("该整数的二进制表示为:%s ",output);
}
⑷ c语言怎么将十进制转化成二进制
#include <stdio.h>
void main()
{
//进制转换函数的声明
int transfer(int x);
int x;
printf("请输入一个十进制数:");
scanf("%d",&x);
printf("转换成二进制数是:%d ",transfer(x));
}
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;
}
89÷2 ……1
44÷2 ……0
22÷2 ……0
11÷2 ……1
5÷2 ……1
2÷2 ……0
1
十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法)
网络-二进制
⑸ c语言里有没有将10进制转换成2进制的函数啊
这个是十进制 转2 8 10的代码
#include "stdio.h"
void s_2();
void s_8();
void s_16();
void main()
{
int c;
do
{
printf("\n0.退出\n1.十进制转二\n2.十进制转八\n3.十进制转十六\n");
printf("请选择: ");
scanf("%d",&c);
if (c==0)
break;
else if(c==1)
s_2();
else if(c==2)
s_8();
else if(c==3)
s_16();
else
printf("输入错误\n");
}while(c!=0);
}
void s_2()
{
int a,x[20],i=0,j;
printf("请输入一个数");
scanf("%d",&a);
while(a>=2)
{
x[i]=a%2;
a/=2;
i++;
}
x[i]=a;
printf("转换为二进制为:");
for(j=i;j>=0;j--)
printf("%d",x[j]);
printf("\n");
}
void s_8()
{
int a,x[20],i=0,j;
printf("请输入一个数");
scanf("%d",&a);
while(a>=8)
{
x[i]=a%8;
a/=8;
i++;
}
x[i]=a;
printf("转换为八进制为:");
for(j=i;j>=0;j--)
printf("%d",x[j]);
printf("\n");
}
void s_16()
{
int a,i=0,j;
char x[20];
printf("请输入一个数");
scanf("%d",&a);
while(a>=0)
{
if(a%16<=9 && a%16>=0)
x[i]=a%16+48;
else
x[i]=a%16+55;
if (a<16)
break;
a/=16;
i++;
}
printf("转换为十六进制为:");
for(j=i;j>=0;j--)
putchar(x[j]);
printf("\n");
}
这个是转为2进制并输出的函数
void s_2()
{
int a,x[20],i=0,j;
printf("请输入一个数");
scanf("%d",&a);
while(a>=2)
{
x[i]=a%2;
a/=2;
i++;
}
x[i]=a;
printf("转换为二进制为:");
for(j=i;j>=0;j--)
printf("%d",x[j]);
printf("\n");
}
你可以根据需要把修改 因为这个函数不返回任何值也不接收数据只是直接显示结果
⑹ C语言中怎样调用函数将十进制转换成二进制
1、打开visualC++6.0-文件-新建-文件-C++SourceFile。
⑺ 求十进制转换二进制C语言代码
求十进制转换二进制C语言代码代码如下:
#include <stdio.h>
#define NR (sizeof(int)*8) // 二进制位的个数
void deciToBin(int num); // 十进制转换为二进制函数声明
/* 主函数 */
int main(void)
{
int num;
fprintf(stdout, "请输入一个正整数:");
/* 获取并检查用户输入 */
while (1)
{
if (fscanf(stdin, "%d", &num) != 1)
{
fprintf(stderr, "输入错误!请重新输入:");
while (getchar() != ' '); // 去掉多余的非法字符
continue;
}
else if (num < 0) // 输入的数不能为负数
{
fprintf(stderr, "请输入错误!请输入正整数:");
continue;
}
else
break;
}
fprintf(stdout, "对应二进制为:");
#if 1 /* 方法一: 不使用递归 */
char bitArr[NR];
int i = -1;
/* 算法:栈的数学模型 */
do {
i += 1;
bitArr[i] = num % 2;
num /= 2;
} while (num != 0);
/* 逆序打印 */
for (i ; i >= 0; i--)
{
fprintf(stdout, "%d", bitArr[i]);
}
fputc(' ', stdout);
#else /* 方法二: 使用递归 */
if (num == 0)
{
fprintf(stdout, "0 ");
}
else
{
deciToBin(num); // 调用第归函数
fputc(' ', stdout);
}
#endif
return 0;
}
/*
* @函数名:deciToBin
* @函数功能:实现十进制转换为二进制
* @参数:需要转换的十进制整数
*/
void deciToBin(int num)
{
/* 第归结束条件 */
if (num == 0)
{
return;
}
/* 第归调用 */
deciToBin(num/2);
/* 逆序打印 */
fprintf(stdout, "%d", num%2);
}
(7)c语言有十进制转二进制的函数吗扩展阅读:
使用C语言编程实现任意进制数(2-16进制)转换为其他任意进制数(2-16进制)方法:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int TenNum(char a[],int B);
void Numchange(int m, int B);
int TenNum(char a[], int B)
{
int len, i, num;
int sum = 0;
len = strlen(a);
for (i = 0; i < len; i++)
{
if (a[i] >= '0' && a[i] <= '9')
num = a[i] - '0';
else if (a[i] >= 'A' && a[i] <= 'F')
num = a[i] - 'A' + 10;
sum = sum * B + num;
}
return sum;
}
void Numchange(int m, int B)
{
int n;
if (m)
{
Numchange(m / B, B);
n = m % B;
if (n < 10)
printf("%d", n);
else
printf("%c", n + 55);
}
}
int main()
{
int B, b;
char a[20];
printf("请输入待转换数的进制(2-16):");
do {
scanf_s("%d", &B);
} while (B < 2 && B > 16);
printf("请输入待转换数:");
getchar();
gets_s(a);
int m = TenNum(a, B);
printf("请输入需要转成几进制数(2-16):");
do {
scanf_s("%d", &b);
} while (B < 2 && B > 16);
printf("%d进制数%s转换为%d进制数的结果为:",B,a,b);
Numchange(m, b);
printf(" ");
system("pause");
return 0;
}
⑻ C语言十进制转二进制
十进制转二进制可以使用库函数itoa。
itoa函数原型:char*itoa(int value,char*string,int radix);
功能:将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。
nt value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。
(8)c语言有十进制转二进制的函数吗扩展阅读:
方法
#include<stdio.h>
intmain(void)
{ inti=0,n,a[32];
printf("请输入一个十进制整数. ");
scanf("%d",&n);
while(n>0)
{a[i]=n%2;
i=i+1;
n=n/2; }
printf("十进制整数转换为二进制数是: ");
for(i--;i>=0;i--)
printf("%d",a[i]);
printf(" ");
return0;}
十进制整数转换为二进制整数的方法:
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
⑼ 十进制转换成二进制 C语言
void dectobin(int n,char s[],int &i){
if(n==0) {
i=0;
return ;
}
else {
dectobin(n/2,s,i);
s[i]='0'+n%2;
i++;
}
}
int main( )
{
int ri,repeat;
int i,n;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
if(n==0) cout<<"0"<<endl;
char s[50];
int k=0;
dectobin(n,s,k);
s[k]='\0';
cout<<s;
printf("\n");
}
}
还是改了函数,如果不改的话,必须使用栈,那样更加麻烦,用递归简单点
给个提醒:做人要厚道,下次再0分就不给做了哈