求十进制转换二进制C语言代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求十进制转换二进制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() != '\\n'); // 去掉多余的非法字符 

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('\\n', stdout);

#else /* 方法二: 使用递归 */

if (num == 0)

fprintf(stdout, "0\\n");

else

deciToBin(num);       // 调用第归函数

fputc('\\n', stdout);

#endif  

return 0;

/*

* @函数名:deciToBin

* @函数功能:实现十进制转换为二进制

* @参数:需要转换的十进制整数

*/

void deciToBin(int num)

/* 第归结束条件 */

if (num == 0)

return;

/* 第归调用 */

deciToBin(num/2);

/* 逆序打印 */

fprintf(stdout, "%d", num%2);

扩展资料:

使用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("\\n");

system("pause");

return 0;

参考技术A 因为没有以二进制输入的“%”的格式所以麻烦了点。(有错见谅)
#include<stdio.h>
int change(int k);
int main()

int n;
printf("进制转换:\n");
printf("请输入一个十进制数:");
scanf("%d",&n);
printf("转换成二进制是:%d\n",change(n));
printf("转换成八进制是:0%o\n",n);
printf("转换成十六进制是:0x%x\n",n);

int change(int k)

int i=1,j,m,s=0;
m=k;
while(m)

j=m%2;
s+=j*i;
i*=10;
m/=2;

return(s);
参考技术B #include "stdlib.h"
void main()

int n,x=0,a[100];
printf("请输入转换的数:\n");
scanf("%d",&n);
while(n)

a[x++]=n%2;
n/=2;

--x;
while(x>=0)
printf("%d",a[x--]);

给你吧蛮简单的
参考技术C #include <stdio.h>

int main()

int a;
scanf("%d", &a);
int i=0;
int bin[32];

while(a>0)

bin[i]=a%2;
a/=2;
i++;

for(int j=i-1;j>=0;j--)
printf("%d",bin[j]);
本回答被提问者采纳

求java编程 二进制十进制互相转化

求求求。

java中有现在的api

10进制转二进制

Integer.toBinaryString(int i);


二进制转十进制

Integer.parseInt("1001",2);



建议多看看JDK文档,这里文档里都有介绍的


参考技术A 下面是十进制转换成二进制和二进制转换成十进制 根据你自己的需求选择
//10进制->2进制
String a = "-1195";//输入数值
BigInteger src = new BigInteger(a);//转换为BigInteger类型
System.out.println(src.toString(2));//转换为2进制并输出结果

//2进制->10进制
String a = "10010101011";//输入数值
BigInteger src = new BigInteger(a, 2);//转换为BigInteger类型
System.out.println(src.toString());//转换为2进制并输出结果

注意下面两个要点:
1. BigInteger的构造函数
BigInteger(String src)默认参数字符串为10进制数值
BigInteger(String src, int x)第2个参数x是指定第一个参数src的进制类型

2. toString方法
toString()默认把数值按10进制数值转化为字符串。
toString(int x)把数值按参数x的进制转化为字符串。
参考技术B //二进制转十进制数字
public static int binaryToDec(String binaryValue)
int dec = 0;
for(int i=0; i<binaryValue.length(); i++)
dec = dec * 2 + (binaryValue.charAt(i) - '0');

return dec;


//十进制转二进制字符串
public static String decToBinary(int decValue)
StringBuilder binaryValue = new StringBuilder();
do
int temp = decValue % 2;
binaryValue.append((char)(temp + '0'));
decValue /= 2;
while(decValue != 0);
return binaryValue.reverse().toString();

参考技术C public static void main(String args[])
String s = "101011110001";
int x = 0;
for(char c: s.toCharArray())
x = x * 2 + (c == '1' ? 1 : 0);
System.out.println(x);

String a="010";
int d = Integer.parseInt(a, 2); // 2进制
int o = Integer.parseInt(a, 8); // 8进制
System.out.println(d);
System.out.println(o);

以上是关于求十进制转换二进制C语言代码的主要内容,如果未能解决你的问题,请参考以下文章

c语言辗转相除法 将十进制转换成任意进制的数 运行结果出错,与正确不符,求指导哪里出错

求C语言将十六进制字符串转换为整型int的函数源代码,要求不能用库函数?

用C语言如何把十进制转换为十六进制,要求程序中运用函数

急!!!数据结构(C语言版) 如何将十进制小数转换成二进制数

c语言编程题,数制转换

C语言 数组类型转换,怎样将一个float类型的数组转换成字符(串)数组?