第2个回答 2014-03-30
首先 用最原始的 八进制转十进制 然后十进制转二进制
八进制转十进制的过程 对应位乘权
十进制转二进制 除二取余
然后就有升级版 把上面两种合并
1位八进制对应3位二进制
八进制转换成二进制,一般算法描述如下:
对于每一位八进制O:
1).X=O
2).a=X%2,X=X/2
3).重复2,直到X为零,
将2)得到的结果序列反序,不足单位的加前导零,就可以得到
这样看,似乎教复杂,其实很简单,C实现的核心代码如下:
for(X=O,i=3;i||X;b[--i]=X%2,x=/2);
因为元素较少,使用直接寻址表也可以的
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111