十进制转二进制

进制转换

(一)十进制转二进制

(二)十进制转八进制

(一) 十进制转二进制
【基本原理】:除基数倒取余数法。
即:十进制转二进制,基数就是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要减一;

(二) 十进制转八进制

未完待续。。。