十进制转二进制
进制转换
(一)十进制转二进制
(二)十进制转八进制
(一) 十进制转二进制
【基本原理】:除基数倒取余数法。
即:十进制转二进制,基数就是2,用2整除一个十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数;如此进行,直到商为0;然后把先得到的余数作为二进制数的低位有效位,把后得到的余数作为二级制的高位有效位,依次排列起来。所谓有效位,就是不算前导0;
例如:输入十进制整数:145
145
#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),例如输入145,执行完循环之后 i=8;,但a数组的最后一个元素的下标是7(数组下标从0开始),所以i要减一;
(二) 十进制转八进制
未完待续。。。