一 计算机科学基础 1.1数制及转换

本文详细介绍了不同数制之间的转换方法,包括二进制、十进制、八进制和十六进制之间的相互转换技巧。通过具体的例子展示了如何利用分解求和法、421法等进行准确快速的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本概念:

^ = 介乘

2^4 = 二的四次方

2^-4 = 二的负四次方,也就是1/16,十六分之一

位 = 整数部分个位为0位,十位为1位,百位为2位,小数点后面第一位为-1位,其他位同理

 二进制转换各个进制 :

// 分解求和法

 2 --> 10 :  100110.101B = 2^5+2^2+2^1+(2^-1+2^-3) = 32+4+2+(1/2+1/8) = 38+5/8 = 38.625D

// 421法

 2 --> 8   :  10101111.10111B = 010 101 111 . 101 110B = 2 5 7 . 5 6 = 257.56O

// 8421法

 2 --> 16 :  10101111.10111B = 1010 1111. 1011 1000B = 10 15 . 11 8 = A F . B 8 = AF.B8H

各个进制转换成二进制 :

//整数部分除二取余,最后倒取,小数部分乘二取整(整数部分),最后正取

10 --> 2 :  38.625D = 38 % 2 = 0     = 0.625 * 2 = 1.250   最终结果整数倒取,小数正取 = 100110.101B

                             = 19 % 2 = 1     = 0.250 * 2 = 0.5

                             =  9  % 2 = 1     = 0.500 * 2 = 1

                             =  4  % 2 = 0

                             =  2  % 2 = 0

                             =  1  % 2 = 1    

//使用421法逆运算及可,小数部分也一样

 8  --> 2 :   257.56O = (2 = 010) (5 = 101) (7 = 111).(5 = 101) (6 = 110) = 10101111.10111B

//同八到二一样,但算法使用8421法

16 --> 2 :   AF.B8H = (A = 1010) (F = 1111).(B = 1011) (8 = 1000) = 10101111.10111B

 

其实我们知道以上这些就可以了,可以于2进制为通用进制,来进行各个进制之间的转换,但再多学一点也好,下面我们来看下10进制到16进制和10进制到8进制之见的转换吧.

其实道理很简单,十转二的时候是用除二取余的办法,那么16进制就是除16取余,8进制是除8取余数,小数部分乘8或16取整.

10 --> 8 :  38.625D = 38 % 8 = 6   = 0.625 * 8 = 5     最终结果整数部分倒取,小数部分正取 = 46.5O

                             =  4  % 8 = 4 

10 --> 16 : 38.625D = 38 % 16 = 6  = 0.652 * 16 = 10 最终结果整数部分倒取,小数部分正取 = 26.AH

                                = 2 % 16 = 2

反或来进行各个位到10进制也是和二进制一个道理  只不过位的权 不一样了~ 二进制是2,16进制是16,8进制是8.

 8  --> 10 : 46.5O = 4*8^1 + 6*8^0 + 5*8^-1 = 32 + 6 + 5/8 = 38.625D

16 --> 10 : 26.AO = 2*16^1 + 6*16^0 + 10(A) * 16^-1 = 32 + 6 + 10/16 = 38.625

OK 清晰的理解上面的转换规则,遇到数制转换也就不会再有问题了.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值