十进制转换为二进制数需要利用除k取余法,其中有循环和递归二中算法,下面看一下代码:

递归版:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>//将一个十进制的数转换成一个二进制的数
void chu_k(int a,char str[],int &last)
{int k = 0;int m = 0;int i = 0;if(a <= 1){last = a;//保留此时的余数return;}else{m = a % 2;str[last++] = m + '0';chu_k(a/2,str,last);}
}int main()
{int a = 123;int length = 0;char str[20] = {0};int last = 0;chu_k(a,str,last);length = strlen(str);str[length] = last + '0';length = strlen(str)-1;int i = length;for(;i>=0;i--){printf("%c",str[i]);      }return 0;
}

打印:1111011

在参数传值的时候是传整型数还是传字符串取决于传哪种更方便,最后在根据需要对整型和字符串之间相互转换,chu_k函数是先保存余数在递归,所有最后打印出来的一个逆序的,最后要把结果倒叙输出才是正确的。

循环版:

int main()
{int c[32] = {0};int i = 0;int n = 123;do{c[i++] = n%2;n /= 2;}while(n != 0);i = i - 1;for(;i>=0;i--){printf("%d",c[i]);}return 0;
}

循环版用的是整型数组,比用字符串数组略简单,而且循环比递归更容易理解,看起来更简单。

看下二进制转十进制:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>//将一个十进制的数转换成一个二进制的数void func(char str[],int &result)
{int length = strlen(str);int i = length-1;int m = 0;for(;i >=0;i--){if(str[i]){m = m + pow(2,length-i-1) * (str[i] - '0');}}result = m;
}int main()
{int result = 0;char str[]="1111011";func(str,result);printf("last=%d\n",result);return 0;
}

打印:123

这个还需要大家细读二进制转十进制的数学方法,程序也是按照数学方法写的。

注意这张图中1010对应字符串来说是逆序的

十进制数和二进制数之间的转换相关推荐

  1. 十进制数转换为二进制数

    Description 输入一个十进制整数,将其转换为二进制数,并将转换结果输出. Input 多组测试数据,每组输入一个十进制整数. Output 将十进制数转换为二进制数,输出转换结果. Samp ...

  2. 数制转换,使用按权展开法将二进制数转换为十进制数,使用短除法除2取余计算十进制数转换为二进制数

    1:数制转换 1.1 问题 1)请将下列数字转换为十进制数: (110010011111)2 .(10110101110)2 2)请将下列十进制数转换为二进制: 156.2608.1043 1.2 方 ...

  3. c语言编写一个程序,将一个十进制数转换为二进制数,c语言编写一个程序,将十进制整数n 转换成二进制数...

    #include int transfer(int x) { int p=1,y=0,yushu; while(1) { yushu=x%2; x/=2; y+=yushu*p; p*=10; if( ...

  4. 十进制数转换为二进制数以及浮点数存储方法

    一.十进制数转换为二进制数 十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并. 1. 十进制整数转换为二进制整数 十进制整数转换为二进 ...

  5. Java中十进制数转二进制数的方法

    十进制数转二进制数,跟据不同的开发语言其转换方式有很多,在Java中如果相把一个十进制的整数来转换成二进制那是举手之劳,非常简单,只要用Integer.toBinaryString(int)方法就可以 ...

  6. #Python# 十进制数转换为二进制数(包含小数)

    #Python# 十进制数转换为二进制数(包含小数) 问题描述 问题分析 代码 问题描述 编写程序,输入十进制小数(只考虑正数),把它转换为以字符串形式存储的二进制小数,输出该二进制小数字符串.对于转 ...

  7. matlab 二进制补码转十进制,matlab十进制与二进制补码之间的转换

    转载:http://blog.xdnice.com/blog40543i59178.html matlab提供了一个系统函数dec2bin,可以用来进行十进制数的二进制转换,不过功能有限! 在matl ...

  8. 将一个很长(>30)的十进制数转换为二进制数

    进制转换 题目描述 将一个很长(>30)的十进制数转换为二进制数 输入 若干个很长的十进制数 每行一个 输出 转换为二进制,每行输出一个 样例输入 12345678901234567890123 ...

  9. python中非怎么表示_【问题解答】Python中非十进制数做参数会自动转换成十进制么?...

    问题:比如chr()函数,文档中说参数i应该是integer,但是输入0o47055.0x4e2d.0b100111000101101都可以得到字符"中". 还有就是网上写的2进制 ...

最新文章

  1. 计算机应用基础模4答案,2012年自考“计算机应用基础”练习题及答案四
  2. MYSQL增量备份和全量备份脚本分享
  3. 一个可变的C++字符序列是5 0新增的
  4. 7,复习,多对多表的三种创建,form组件,cookie,session
  5. 【2018/04/02】学习小记
  6. Spring Boot + Spring Data + Elasticsearch实例
  7. 两台电脑共享怎么设置_两台电脑共用键鼠的简单设置
  8. 查看进程占用内存cpu信息,Linux命令—TOP
  9. 深度学习中batch-size介绍
  10. HttpClient相关
  11. nodejs动态加载代码
  12. kubernetes 源码安装1.18.3 (7)部署cni网络
  13. WPS翻译公式之谷歌翻译公式
  14. CLion的Toolchains are not configured和no CMAKE profiles问题
  15. Snipaste常用快捷键(详细总结)
  16. java 扩展名读取_java 读取excel文件,根据文件后缀名
  17. Hadoop大数据原理(2) - 分布式文件系统HDFS
  18. 心情就像这多雨的天......
  19. 项目经理的进阶之路——项目集管理
  20. 如何把多张图片合成视频

热门文章

  1. Redis 你该懂的点
  2. 添加python虚拟环境
  3. 线段树3——一些例题的题解
  4. java List集合
  5. 查询字符串中字母出现的个数
  6. VS2005+WINDDK+Driver Studio 3.2编译出第一个测试驱动程序
  7. 函数中参数有数组时注意的小问题(不一定要传递数组长度,不用返回数组,可以在函数中改变数组元素值)
  8. 浅谈 instanceof 和 typeof 的实现原理
  9. zabbix服务无法启动
  10. linux 下的Memcached安装和配置