十进制转化成二进制、八进制、十六进制

来源:百度知道 编辑:UC知道 时间:2024/06/23 18:12:37
我知道一般的方法,把一个十进制数转化成二进制、八进制或十六进制,但是那太麻烦。有没有简单一点的方法?
我说的是手工算,有没有简单的方法。不是用计算机。

貌似我一般十进制转化成二进制、八进制、十六进制都是拿数分别除以2,8,16的,要是有简单的算法也不错。。
手算的话就这样

要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。

一、十进制转二进制

如:55转为二进制
2|55
27――1 个位
13――1 第二位
6――1 第三位
3――0 第四位
1――1 第五位
最后被除数1为第七位,即得110111

二、十进制转八进制

如:5621转为八进制
8|5621
702 ―― 5 第一位(个位)
87 ―― 6 第二位
10 ―― 7 第三位
1 ―― 2 第四位
最后得八进制数:12765

三、十进制数十六进制

如:76521转为十六进制
16|76521
4782 ――9 第一位(个位)
298 ――14 即 E 第二位
18 ――10 即 A 第三位
1 ―― 2 第四位
最后得12AE9

一般的方法 ,但是实现过程也不复杂。。。

#include <iostream>
using namespace std;
int a[100];
void func2(int x)//x此处是10进制数,转化成二进制
{
int i=0;
while(x!=0)
{
a[i]=x%2;
x/=2;
i++;
}
for(int k=i-1;k>=0;k--)
{
cout<<a[k];
}
cout<<endl;