二进制 与十进制 互相转换
2017-08-22 15:28
204 查看
#include<stdio.h> #include<string.h> #define maxn 1000 int getdigits(int n)//获取数字位数 { int cnt = 0; while(n != 0){ n = n/10; cnt++; } return cnt; } int to_decim1(int n)//整数转换为 十进制 { int cnt = getdigits(n); int v = 0; int m; while(cnt--){ m = 1; for(int i = 0; i < cnt; i++) m *= 10; v = v*2 + n/m; n = n%m; } return v; } int to_decim2(char *a)//字符串中的二进制字符转换为十进制 { int sum = 0; int j = 1; int len = strlen(a); (1)方法1 逆序 加 // for(int i = len-1; i >= 0; i--){ // sum += j*(a[i]-'0'); // j *= 2; // } int v = 0;(2)方法2 顺序 加 int i = 0; while(len--){ v = v*2 + a[i++]-'0'; } return v; } void to_binary(int n) //十进制转换为二进制 { if(n == 1 || n == 0){ printf("%d",n); return ; } to_binary(n/2); printf("%d",n%2); //递归逆序输出 } int main() { char a[maxn]; printf("\n输入要转换的二进制数:\n"); int n, m; scanf("%d",&n); printf("%d 的十进制为\t%d\n",n, to_decim1(n)); printf("请输入二进制字符:\n"); scanf("%s",a); int rel2 = to_decim2(a); printf("%s 的十进制为\t%d\n",a, rel2); printf("请输入要转换为二进制的数:\n"); scanf("%d",&m); printf("%d 的二进制为:\t",m); to_binary(m); return 0; }
相关文章推荐
- 二进制与十进制的互相转换
- 十进制小数与二进制小数之间的互相转换
- Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
- 十进制与二进制与八进制与十六进制互相转换
- 用C#代码实现二进制与十进制的互相转换
- Python进制互相转换(二进制、十进制和十六进制)
- 二进制、十进制、十六进制互相转换
- 十进制二进制互相转换
- 整理C# 二进制,十进制,十六进制 互相转换
- java 中 十进制与二进制的互相转换
- 二进制、八进制、十进制和十六进制的互相转换
- (转)十进制与二进制互相转换
- IOS中常用的字符串、十进制、二进制、十六进制之间互相转换及简单算术和
- C++ 十进制、二进制互相转换
- C#中二进制、十进制和十六进制互相转换的方法
- 二进制、十进制、八进制、十六进制的互相转换
- 十进制与二进制互相转换指南
- C#中二进制、十进制和十六进制互相转换的方法
- 用C#代码实现二进制与十进制的互相转换
- VB6支持96个1的二进制与十进制的互相转换程序