⼗进制与⼆进制之间转换详解
⽂章⽬录
⼗进制与⼆进制之间转换详解
二进制转换10进制快捷方法(⼀)⼗进制数转⼆进制数
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";
return0;
}
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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论