用一个算法实现十进制数向二进制数转换,我们考虑得到7的二进制表示,奇数的二进制形式最后一位肯定是1,而偶数的二进制最后一位肯定是0。可以通过7%2来计算二进制最后一位数是0或者1。即对于十进制整数n而言,二进制表示的最后一位肯定可以用n%2计算出来。而为了得到二进制倒数第二位上的数字,则需要把十进制数除以2,这种对于十进制数的计算相当于把该数值的二进制位向左移了一位(可以类比计算一个十进制数的十位上数字,只需要把该数值除以十,此时得到的结果数值的个位即原数值的十位数值)。如果此时得到的结果是奇数,则说明二进制数倒数第二位对应1,否则为0。此时需要考虑,何时结束运算,只要被2除的结果等于或者大于2,那就还需要一位二进制位进行表示。因此,只有被2除的结果小于2时,才停止计算。所以,可以考虑循环和递归的方法实现该算法。

C语言实现方法一:

#include<stdio.h>
#define MAX 32
int main(void)
{int i=0,n,a[MAX];printf("请输入一个十进制整数:\n");scanf("%d",&n);while (n>0)   //循环过程的始终,判断n是否能被2除尽{a[i] = n%2;   //用数组存储每次除以2之后的余数,即断定奇偶性,对应二进制位上数值i = i+1;n = n/2;}printf("十进制整数转换为二进制数是:\n");for(; i > 0; i--)printf("%d",a[i-1]);printf("\n");return 0;
}

C语言实现方法二:

#include <stdio.h>
#define MAX 32
int main(void)
{int a,r,i=0,j=1,count[MAX];     //输入的是aprintf("请输入一个十进制整数:\n");scanf("%d",&a);do{               //循环,直到a等于0跳出 r = a%2;       //求每一次的余数,即二进制位上的数值 a = a/2;i++;count[i] = r;}while(a != 0);      //每次除以2之后,二进制位左移一位,判断是否结束循环printf("十进制整数转换为二进制数是:\n");for(j = i; j > 0; j--)      //倒序输出二进制位上数值 printf("%d",count[j]);printf("\n");return 0;
}

C语言实现方法三:

#include<stdio.h>
void binary_cal(int n){  int r;  r = n % 2;  if(n >= 2)  binary_cal(n/2);   //使用递归函数实现,占用较多内存,执行速度较慢printf("%d",r);
}
int main(void){  int num;  printf("请输入一个十进制整数:\n");  while(scanf("%d",&num) == 1){  printf("十进制整数转换为二进制数是:\n");  binary_cal(num);  putchar('\n');  }  return 0;
} 

C++实现代码:

#include"stdafx.h"
#include <iostream>
#define MAX 32
using namespace std;
int main(){cout << "请输入一个整型十进制数:" << endl;int num,i= 0;cin >> num;cout << "十进制整数转换为二进制数是:" <<endl;int bin[MAX],length = 0;do{bin[i] = num % 2;num = num / 2;i++;length++;} while (num != 1);bin[length] = num;length++;for (i = length - 1; i >= 0; i--)cout << bin[i];cout << endl;return 0;
}

C++/C语言中十进制转二进制的常见方法相关推荐

  1. 总结计算机中十进制数二进制数,计算机中十进制转换为二进制的新方法

    计算机,考试必备! 计算机中十进制转换为二进制的另一方法 -------"定位减权法" 胡燏 (四川建筑职业技术学院计算机系,618000) [摘要]本文从十进制与二进制的特点入手 ...

  2. c语言中十进制转化二进制八进制十六进制,进制转换:二进制、八进制、十六进制、十进制之间的转换...

    对于基础薄弱的读者,本节的内容可能略显晦涩和枯燥,如果觉得吃力,可以暂时跳过,用到的时候再来阅读.但是本节所讲的内容是学习编程的基础,是程序员的基本功,即使现在不学,迟早也要回来学. 上节我们对二进制 ...

  3. C语言:十进制转换为二进制的数学方法

    首先我们需要厘清逻辑:十进制如何转换为二进制 我们采用的方法--短除法 以十进制数字10为例 我们的目的是将该十进制的数字转换为二进制的数字 纯数学的方法如下: 10÷2=5余0 5÷2=2余1 2÷ ...

  4. C语言实现十进制转二进制

    C语言实现十进制转二进制 数学原理 用2整除十进制整数,可以得到一个商和余数:再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余 ...

  5. 用C语言将十进制转换为二进制

    程序代码 1将十进制转换为二进制 #include<stdio.h> /* *csdn学院--2016级 *目的:让代码见证成长(作为一个初学的菜鸟,如 *大家有发现错误,欢迎指正!) * ...

  6. c语言中的几条遍历的方法:

    c语言中的几条遍历的方法: 1.简单的数位遍历(逆向打印出每一位) #include<stdio.h> #include <stdlib.h> void oneNumber(i ...

  7. java在方法中用来抛出异常关键字的是,在Java语言中以下哪个关键字用于在方法上声明抛出异常()...

    在Java语言中以下哪个关键字用于在方法上声明抛出异常() 更多相关问题 [判断题] 现金到账户汇款和账户到账户汇款简称为入账汇款. [单选] 客户办理一笔134.45元按址汇款,附言5个汉字,共应收 ...

  8. c语言编程时间,C语言中读取时间日期的基本方法

    C语言time()函数:获取当前时间(以秒数表示)头文件: #include 定义函数: time_t time(time_t *t); 函数说明:此函数会返回从公元 1970 年1 月1 日的UTC ...

  9. 在python语言中下列是二进制整数_Python从菜鸟到高手(5):数字

    Python从菜鸟到高手(5):数字 发布时间:2020-07-12 02:17:50 来源:51CTO 阅读:1005 作者:androidguy 1 基础知识 Python语言与其他编程语言一样, ...

最新文章

  1. 2019-06-07 Java学习日记之CSS
  2. SparkSQL DataFrame进阶篇
  3. E. Almost Sorted(构造,递归)
  4. SpringCloud Zuul(七)之POST Filter
  5. Django中的日期处理注意事项和自定义时间格式转换
  6. 架构设计:服务自动化部署和管理流程
  7. PHP curl 直接获取请求变量,不直接输出
  8. python 获取表格中的空数据_在python beautifulsoup中获取表格单元格值为空时的文本输出...
  9. 动画效果之PC端 移动端 探照灯遮罩动画
  10. 代理服务器proxy server是什么?有什么作用
  11. MacOS上符号执行模块angr和z3-solver模块的安装
  12. c语言求字符ascii,C语言中ASCII码是什么意思? c语言怎么求字符的ascii码
  13. cad安装日志文件发生错误_CAD 2012 安装出错,错误log文件如下,该怎么修复 在线等。...
  14. SQL Sever 数据库视频 (一) (SQL基础及管理工具)
  15. mysql时间格式秒微秒_mysql 时间类型精确到毫秒、微秒及其处理
  16. echarts如何将柱形图的柱子分割成一小块一小块,也就是象形柱图
  17. pl/sql---存储过程
  18. CentOS 7下安装Redis
  19. tar无法解压bz2压缩包问题
  20. scrollTo详解

热门文章

  1. springmvc与ajax
  2. python3.6+PyQt5安装
  3. 为什么说,百度SEO是经验主义?
  4. 1. 有1,2,3,4个数字, 能组成多少个互不相同且无重复数字的三位数? 都是多少?
  5. 网课python程序设计答案_Python程序设计知到网课答案
  6. c语言字符nul,在C++中存储非nul终止的C字符串常量
  7. CToolBar的使用总结1
  8. tar命令打包和压缩与解压
  9. 数据库 之创建新用户
  10. 华为eNSP基础命令