十进制与二进制之间转换详解
文章目录
- 十进制与二进制之间转换详解
- (一)十进制数转二进制数
- 1.1 十进制正整数转二进制
- 1.2 十进制负整数转二进制
- 1.3 十进制小数转二进制数
- (二) 二进制数转成十进制数
- 2.1 二进制整数转十进制
- 2.1 二进制小数转十进制
- (三)十进制正整数转八进制
十进制与二进制之间转换详解
(一)十进制数转二进制数
1.1 十进制正整数转二进制
【基本原理】:除基数倒取余数法。
即:十进制转二进制,基数就是2,用2整除一个十进制正整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数;如此进行,直到商为0;然后把先得到的余数作为二进制数的低位有效位,把后得到的余数作为二级制的高位有效位,依次排列起来。所谓有效位,就是不算前导0;
注:计算机内部表示数的字节单位是定长的,如8位,16位,32位。所以,位数不够时,高位补0,
例如:输入十进制正整数:150
150
#include<iostream>
using namespace std;
int main()
{int i, j;//定义循环变量;int a[1005];//定义一个储存二进制的数组;int num;cin >> num;//输入需要转换的10进制正整数;for (i = 0; num != 0; i++){a[i] = num % 2;//对num取余.......就是除以2的余数;num = num / 2;//......每次取余之后num除以2的商;}for (j = i - 1; j >= 0; j--)//倒序输出余数,即为二进制数;{cout << a[j];}cout << "\n";return 0;
}
for (j = i - 1; j >= 0; j–)
这里解释一下这句为什么是 (j=i-1),例如输入150,执行完循环之后 i=8;,但a数组的最后一个元素的下标是7(数组下标从0开始),所以i要减一;
1.2 十进制负整数转二进制
【方法】:先将十进制负整数对应的十进制正整数转换成二进制后,对二进制逐位取反(即:0变成1,
1变成0),然后对结果加1(当然是二进制运算);
1.3 十进制小数转二进制数
【方法】:对小数点以后的数×2,取结果的整数部分,然后再用小数部分再×2,再取结果的整数部分……以此类推,直到小数部分为0。然后把取的整数部分按先后次序排列,就构成了二进制小数部分的序列。
例:
0.125
注:如果十进制小数的整数部分有大于0的数时,将整数部分转成二进制,小数部分也转成二进制,加在一起就好了。
例:
150.125
(二) 二进制数转成十进制数
2.1 二进制整数转十进制
【基本原理】:按权展开求和法。
【方法】:首先将二进制数补齐位数(8位),首位如果是0就代表是正整数,如果首位是1则代表是负整
数。
(1).补齐位数以后,若首位是0的正整数,将二进制中的各位数与各自的权相乘,然后求和。
例:
11010
(2).补齐位数以后,若首位是1的负整数,就先将其逐位取反,再将二进制中的各位数与各自的权相乘,然后求和。
例:
11101110
2.1 二进制小数转十进制
【方法】:按权展开求和法,但和二进制整数转十进制的权不一样。
例:
0.1101
(三)十进制正整数转八进制
【基本原理】:与十进制正整数转二进制一样,除基数倒取余数法。
直接看代码:
#include<iostream>
using namespace std;
int main()
{int i, j;//定义循环变量;int a[1005];//定义一个储存八进制的数组;int num;cin >> num;//输入需要转换的10进制整数;for (i = 0; num != 0; i++){a[i] = num % 8;//对num取余.......就是除以8的余数;num = num / 8;//......每次取余之后num除以8的商;}for (j = i - 1; j >= 0; j--)//倒序输出余数,即为八进制数;{cout << a[j];}cout << "\n";return 0;
}
150
十进制与二进制之间转换详解相关推荐
- python datetime to timestamp_python timestamp和datetime之间转换详解
做开发中难免时间类型之间的转换, 最近就发现前端js和后端django经常要用到这个转换, 其中jsDate.now()精确到毫秒,而Python中Datetime.datetime.now()是精确 ...
- python中时间戳、字符串之间转换详解
[转载]python中时间戳.字符串之间转换详解 (2013-04-30 17:36:07) 转载▼ 标签: 转载 原文地址:python中时间戳.字符串之间转换详解作者:doris0920 1)秒数 ...
- 二进制转换八进制图解_二进制、八进制和十六进制之间转换详解
我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1.9.10.297.952 等,一个数字最多能表示九,如果要表示十.十一.二十九.一百等,就需要多个数字组合起来. 例如表示 5+8 的结果 ...
- python timestamp转date_python timestamp和datetime之间转换详解
做开发中难免时间类型之间的转换, 最近就发现前端js和后端django经常要用到这个转换, 其中jsDate.now()精确到毫秒,而Python中Datetime.datetime.now()是精确 ...
- C语言各种类型之间转换详解
目录 1. C基本类型变量 2. 符号扩展 2.1 规则一: 2.2 规则二: 2.3 规则三: 3. 零扩展 4. 长类型转换为短类型 5. 自动类型转换 5.1 赋值时的类型转换 5.2 运算时的 ...
- 二进制、八进制、十进制、十六进制之间转换
(一).进制之间的转换 八进制:0-7 十六进制:0-F 1.十进制 与 二进制之间的转换 (1).十进制转换为二进制,分为整数部分和小数部分 整数部分 方法:除2取余法,即每次将整数部分除以2,余 ...
- C++编程积累——C++实现十进制与二进制之间的互相转换
欢迎关注原创公众号 [计算机视觉联盟],回复 [西瓜书手推笔记] 可获取我的机器学习纯手推笔记! 直达笔记地址:机器学习手推笔记(GitHub地址) 目录 十进制与二进制之间的转换 十进制转换二进制 ...
- 网络编程 网络地址点分十进制和二进制之间的转换
网络编程 网络地址点分十进制和二进制之间的转换 点分十进制->二进制 点分十进制转二进制的函数有inet_addr,inet_aton,inet_network,inet_pton,它们都将输入 ...
- UNICODE与UTF-8的转换详解
UNICODE与UTF-8的转换详解 1 编码 在计算机中,各种信息都是以二进制编码的形式存在的,也就是说,不管是文字.图形.声音.动画,还是电影等各种信息,在计算机中都是以0和1组成的二进制代码表示 ...
最新文章
- 黑色星期五c语言,求黑色星期五问题~
- 程序员如何日常解决错误问题
- 入门Python难不难?零基础到底要怎么学Python?
- 编辑器js获取浏览器高度和宽度值(转)
- Win10 + VSCode踩坑 + vue项目开发:设置vscode终端为管理员权限
- 微信小程序scroll-view去掉滚动条
- rabbitmq消息确认机制及死信队列的使用
- c语言中char的取值扩大,C语言中 char 类型的取值范围为什么是-128~127
- matlab图像分割算法源码
- LTE下行物理层传输机制(8)-DCI2A格式和下行双流的流量制约
- signature=a50e5f0f4a417f58d5844d45a67fb641,angular中文转拼音工具
- android app 图片资源,Android App 瘦身总结 第一章 图片资源的优化处理
- osm 搭建离线地图_利用OpenStreetMap(OSM)数据搭建一个地图服务
- 阿里云数据库设置ip白名单连接正式库详细步骤
- Kettle数据库连接中的集群与分片
- 智能云防雷,信号浪涌保护器防雷接地方案
- Photoshop 面试题
- Tuxera Disk Manager是什么软件,Tuxera Disk Manager怎么用
- scanf()函数详解
- 【SpringBoot】之自定义 Filter 过滤器
热门文章
- 我自己注册的账号,凭什么不让我注销?谁动了我们的“注销权”...
- 如何成为一名全栈开发人员----转载
- app 的 icon图标 有黑边
- css网页网格线条背景
- Python学习,第七课(灵活使用Frame,让布局更舒适)
- java后台程序员转android 之《三B》 支付宝支付 client join server 及采坑记录
- 【unity shader】unity游戏特效-仿《黑暗欺骗》模型消融消失效果
- 1407C. Chocolate Bunny(交互,推导)
- 企业网络营销:如何提高推广效果?
- 【微信小程序】零基础学 | 小程序语法