十进制与二进制相互转换(c++)
一、二进制数转换成十进制数
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
例如把二进制数 110.11 转换成十进制数。
二、十进制数转换为二进制数
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
1. 十进制整数转换为二进制整数
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
例如把 (173)10 转换为二进制数。
解:
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
例如把(0.8125)转换为二进制小数。
解:
例:
(173.8125)10=( )2
解:
在上个例子中得(173)10=(10101101)2 得(0.8125)10=(0.1101)2
把整数部分和小数部分合并得:
(173.8125)10=(10101101.1101)2
#include<iostream>
#include<cmath>
#include<string>
using namespace std;int a[1000],b[1000];
/*** 十进制转二进制**/
void dec2bin(double x){int num1=(int)x;double num2=x-num1;int iter=0;//整数while(num1>0){a[iter++]=num1%2;num1/=2;}for(int i=iter-1,z=4-iter%4+1;i>=0;i--,z++){cout<<a[i];if(z%4==0)cout<<" ";}cout<<". ";//小数iter=0;while(fabs(num2-0.0)>0.000001){//double类型,num2==0.0b[iter]=(int)(num2*2);num2=num2*2-b[iter];iter++;}for(int i=0;i<iter;i++){cout<<b[i];if((i+1)%4==0)cout<<" ";}cout<<endl;
}/*** 二进制转十进制* .....**/
void bin2dec(string s){int dot_pos=0;//小数点位置for(int i=0;i<s.size();i++){//除去空格//....if(s[i]=='.'){dot_pos=i;break;}}//....
}int main()
{double x;x=256.3125;dec2bin(x);return 0;
}
十进制与二进制相互转换(c++)相关推荐
- C语言 十进制和二进制相互转换 - C语言零基础入门教程
目录 一.十进制和二进制区别 1.基数不同 2.有效字符不同 3.用途不同 二.十进制转二进制 三.二进制转十进制 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >& ...
- Oracle数据二进制传输,学习笔记:Oracle数值函数 十进制与二进制相互转换的函数使用案例...
天萃荷净 ORACLE 十进制与二进制互转函数,开发DBA向我咨询数值转换的方法,Oracle数值转换函数NUMBER_TO_BIT等函数可用 1.Oracle数值转换之十进制转换二进制 CREATE ...
- 十进制与二进制相互转换
十进制转二进制 这方法叫 除2取余,逆序排列 法: 例如,现在要将20转为二进制,那么我们的运算逻辑是: 20 % 2 = 10 余 0 10 % 2 = 5 余 0 5 % 2 = 2 余 1 2 ...
- 十进制与二进制相互转换(包括带小数点.各类进制转换公式)
首先从进位制,来讨论 十进制 0-1-2-3-4-5-6-7-8-9 例如: 365.32(十进制) 小数点左等于 3102+6*101+510^0 右边等于 310^-1 + 210^-2 综合结果 ...
- 使用python进行十进制和二进制(补码)相互转换
使用python进行十进制和二进制相互转换 python中进制转换有专门的函数,如hex,int,oct,bin.见下图. 不过如果我将一个负数使用bin转换为2进制,得到的并不是补码形式.如: &g ...
- C语言 十进制和八进制相互转换 - C语言零基础入门教程
目录 一.十进制和八进制区别 1.基数不同 2.有效字符不同 3.用途不同 二.十进制转八进制 三.八进制转十进制 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >& ...
- C语言 十进制和十六进制相互转换 - C语言零基础入门教程
目录 一.十进制和十六进制区别 1.基数不同 2.有效字符不同 3.用途不同 二.十进制转十六进制 三.十六进制转十进制 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 &g ...
- oracle十进制函数语法,Oracle 十进制、二进制互相转换自定义函数
Oracle 十进制.二进制相互转换自定义函数 create or replace function number_2_bit(v_num number) return varchar is v_rt ...
- [转载]C# 二进制与十进制,十进制与十六进制相互转换
原文地址:C# 二进制与十进制,十进制与十六进制相互转换作者:tonytonglx 十进制转二进制: 用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果例如302 302/2 = 151 ...
- c++十进制转二进制_二进制与十进制相互转换的原理
┇铺垫 二进制,简单来说,是一种运算规则,每一位达到"二"就进一位,故称为"二" "进" 制.在我们日常计算里每一位到"十&quo ...
最新文章
- 【TensorFlow】TFRecord数据集的制作:读取、显示及代码详解
- NYOJ 84 阶乘的0 数论
- Qt平台和编译器说明-Android
- linux中内存管理方法的总结,Linux内存管理-free学习心得
- MATLAB中如何删除坐标上已画出的内容
- 4-3利用神经网络解决分类和回归问题(1)
- 微课|Python列表、字典、集合、字符串对象常用方法串讲
- JQuery选择器跨frame和层次选择
- rk3399_android7.1调试USB接口的TP记录
- 【颜色识别】【Python+OpenCV】KNN(K近邻算法)实现魔方颜色识别【 3-1】
- 《游戏设计师修炼之道:数据驱动的游戏设计》一1.1 风险管理的作用
- 电信 宽带 光猫 中兴 F460 V6.0.0P11T2sc 破解 telecomadmin 超级密码 的方法
- 面向对象:感受温柔,领略山河,遇见不容易,喜欢望珍惜
- 麒麟985和麒麟990有什么区别(手机常见问题)
- 计算机和共享打印机不在一个网络打印机共享,不在同一个局域网怎么样设置打印机共享...
- 指纹识别综述(6): 现场指纹识别
- 面向异构众核超级计算机的大规模稀疏计算性能优化研究
- 基于Labview平台的滚动轴承故障分析与噪声评价系统
- spaceclaim脚本(内摆线)
- 【愚公系列】2021年12月 Java教学课程 14-流程控制语句之while循环