C++/C语言中十进制转二进制的常见方法
用一个算法实现十进制数向二进制数转换,我们考虑得到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语言中十进制转二进制的常见方法相关推荐
- 总结计算机中十进制数二进制数,计算机中十进制转换为二进制的新方法
计算机,考试必备! 计算机中十进制转换为二进制的另一方法 -------"定位减权法" 胡燏 (四川建筑职业技术学院计算机系,618000) [摘要]本文从十进制与二进制的特点入手 ...
- c语言中十进制转化二进制八进制十六进制,进制转换:二进制、八进制、十六进制、十进制之间的转换...
对于基础薄弱的读者,本节的内容可能略显晦涩和枯燥,如果觉得吃力,可以暂时跳过,用到的时候再来阅读.但是本节所讲的内容是学习编程的基础,是程序员的基本功,即使现在不学,迟早也要回来学. 上节我们对二进制 ...
- C语言:十进制转换为二进制的数学方法
首先我们需要厘清逻辑:十进制如何转换为二进制 我们采用的方法--短除法 以十进制数字10为例 我们的目的是将该十进制的数字转换为二进制的数字 纯数学的方法如下: 10÷2=5余0 5÷2=2余1 2÷ ...
- C语言实现十进制转二进制
C语言实现十进制转二进制 数学原理 用2整除十进制整数,可以得到一个商和余数:再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余 ...
- 用C语言将十进制转换为二进制
程序代码 1将十进制转换为二进制 #include<stdio.h> /* *csdn学院--2016级 *目的:让代码见证成长(作为一个初学的菜鸟,如 *大家有发现错误,欢迎指正!) * ...
- c语言中的几条遍历的方法:
c语言中的几条遍历的方法: 1.简单的数位遍历(逆向打印出每一位) #include<stdio.h> #include <stdlib.h> void oneNumber(i ...
- java在方法中用来抛出异常关键字的是,在Java语言中以下哪个关键字用于在方法上声明抛出异常()...
在Java语言中以下哪个关键字用于在方法上声明抛出异常() 更多相关问题 [判断题] 现金到账户汇款和账户到账户汇款简称为入账汇款. [单选] 客户办理一笔134.45元按址汇款,附言5个汉字,共应收 ...
- c语言编程时间,C语言中读取时间日期的基本方法
C语言time()函数:获取当前时间(以秒数表示)头文件: #include 定义函数: time_t time(time_t *t); 函数说明:此函数会返回从公元 1970 年1 月1 日的UTC ...
- 在python语言中下列是二进制整数_Python从菜鸟到高手(5):数字
Python从菜鸟到高手(5):数字 发布时间:2020-07-12 02:17:50 来源:51CTO 阅读:1005 作者:androidguy 1 基础知识 Python语言与其他编程语言一样, ...
最新文章
- 2019-06-07 Java学习日记之CSS
- SparkSQL DataFrame进阶篇
- E. Almost Sorted(构造,递归)
- SpringCloud Zuul(七)之POST Filter
- Django中的日期处理注意事项和自定义时间格式转换
- 架构设计:服务自动化部署和管理流程
- PHP curl 直接获取请求变量,不直接输出
- python 获取表格中的空数据_在python beautifulsoup中获取表格单元格值为空时的文本输出...
- 动画效果之PC端 移动端 探照灯遮罩动画
- 代理服务器proxy server是什么?有什么作用
- MacOS上符号执行模块angr和z3-solver模块的安装
- c语言求字符ascii,C语言中ASCII码是什么意思? c语言怎么求字符的ascii码
- cad安装日志文件发生错误_CAD 2012 安装出错,错误log文件如下,该怎么修复 在线等。...
- SQL Sever 数据库视频 (一) (SQL基础及管理工具)
- mysql时间格式秒微秒_mysql 时间类型精确到毫秒、微秒及其处理
- echarts如何将柱形图的柱子分割成一小块一小块,也就是象形柱图
- pl/sql---存储过程
- CentOS 7下安装Redis
- tar无法解压bz2压缩包问题
- scrollTo详解