c语言问题

我的c语言的计算机基础知识就是2 8 10 16 等进制方面的互相计算方面不懂 求这方面的祥界解

2、十进制数与P进制数之间的转换
①十进制转换成二进制:十进制整数转换成二进制整数通常采用除2取余法,小数部分乘2取整法。例如,将(30)10转换成二进制数。
将(30)10转换成二进制数
2| 30 ….0 ----最右位
2 15 ….1
2 7 ….1
2 3 ….1
1 ….1 ----最左位
∴ (30)10=(11110)2
将(30)10转换成八、十六进制数
8| 30 ……6 ------最右位
3 ------最左位
∴ (30)10 =(36)8

16| 30 …14(E)----最右位
1 ----最左位
∴ (30)10 =(1E)16
3、将P进制数转换为十进制数
把一个二进制转换成十进制采用方法:把这个二进制的最后一位乘上2的0次幂,倒数第二位乘上2的1次幂,……,一直到最高位乘上2n,然后将各项乘积相加的结果就它的十进制表达式。
把二进制11110转换为十进制
(11110)2=1*24+1*23+1*22+1*21+0*20=
=16+8+4+2+0
=(30)10

把一个八进制转换成十进制采用方法:把这个八进制的最后一位乘上8的0次幂,倒数第二位乘上8的1次幂,……,一直到最高位乘上8的n次幂,然后将各项乘积相加的结果就它的十进制表达式。
把八进制36转换为十进制
(36)8=3*81+6*80=24+6=(30)10
把一个十六进制转换成十进制采用方法:把这个十六进制的最后一位乘上16的0次幂,倒数第二位乘上16的1次幂,……,一直到最高位乘上16的n次幂,然后将各项乘积相加的结果就它的十进制表达式。
把十六制1E转换为十进制
(1E)16=1*161+14*160=16+14=(30)10
3、二进制转换成八进制数
(1)二进制数转换成八进制数:对于整数,从低位到高位将二进制数的每三位分为一组,若不够三位时,在高位左面添0,补足三位,然后将每三位二进制数用一位八进制数替换,小数部分从小数点开始,自左向右每三位一组进行转换即可完成。例如:
将二进制数1101001转换成八进制数,则
(001 101 001)2
| | |
( 1 5 1)8
( 1101001)2=(151)8

(2)八进制数转换成二进制数:只要将每位八进制数用三位二进制数替换,即可完成转换,例如,把八进制数(643.503)8,转换成二进制数,则
(6 4 3 . 5 0 3)8
| | | | | |
(110 100 011 . 101 000 011)2
(643.503)8=(110100011.101000011)2
4、二进制与十六进制之间的转换
(1)二进制数转换成十六进制数:由于2的4次方=16,所以依照二进制与八进制的转换方法,将二进制数的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始自左向右每四位一组进行转换。
(2)十六进制转换成二进制数
如将十六进制数转换成二进制数,只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换。
例如:将(163.5B)16转换成二进制数,则
( 1 6 3 . 5 B )16
| | | | |
(0001 0110 0011. 0101 1011 )2
(163.5B)16=(101100011.01011011)2
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-08-07
10进制转各种进制 比如10进制转2进制就是除2取余 8进制就是除8取余 16进制就是除16取余 这个是书面上的 用起来比较不方便

下面是我个人见解 是关于其他进制转10进制的

比如2进制10011010 倒过来看 第1位是0 所以不管 第2位是1 就是2的1次方等于2 第3位是0 不管 第4位是 1 所以第4位是2的3次方等于8 然后继续算下去 最后相加等于154 就是10进制了

接着2进制转8进制 因为8是2的三次方 所以刚刚那个数10011010只有8位 看成010011010 分成三段 1段010 2段011 3段010 是倒起看的 第一段10进制为2 第2段10进制为3 第三段10进制为2 所以转8进制为232

接着2进制转16进制 因为16是2的4次方 所以划成4个数为一段 和转8进制一样

很简单吧 还可以使用windows的自带工具计算器 希望能帮到你
第2个回答  2007-08-07
十进制中,十位上加了1表示满了一个十,百位加1表示满了一个百。
同理可以推广到任意进制

举个例子
100怎么变成12进制呢?
首先先用100/12=8余6
解释成满了8次12但剩了6个。
因为满了一次12网前进一位,那么可以认为最低位网前进了8次
所以(100)10 = (86)12
换成10进制的时候8表示满了8次12,6是剩下的
故(86)12 = 8*12+6=100
小数点部分则是几分之几
比如十进制中
小数点后第1位表示1/10,第2位表示1/100(所以叫它们十分位,百分位)
0。7中的7表示有7个1/10。(一个饼被分成了10份)
同样可以推广到任意进制
二进制时的小数点后第1位表示1/2(一个饼被分成了2份)
所以很容易看出
(0.5)10 = (0.1)2,(0.5)10 = (0.4)8(拿出的饼的大小是一样的)
现在书只是教人怎么算,我一开始也是很困惑,那些法则根本记不住,当我想出了上面的内容后,发现记忆容易多了,经验之谈。
第3个回答  2007-08-07
十进制就是见十进一.二进制就把十看成二..其它一样的..
相似回答
大家正在搜