数制转换与运算

本文介绍了数制转换的基本原理和方法,包括任意进制到十进制的转换,以及二、八、十六进制之间的相互转换。通过展开和加权求和的方式,详细阐述了不同数制间转换的步骤和技巧,特别强调了以二进制作为中介进行八进制和十六进制转换的策略。

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

几种常用数制

多位任意进制(N进制)数展开的普遍形式:
∑kiNi\sum k_{i}N^{i}kiNi
式中kik_{i}ki为第i位的系数,N为多少进制数,NiN^{i}Ni则成为第i位的权。

十进制二进制八进制十六进制
∑ki10i\sum k_{i}10^{i}ki10i∑ki2i\sum k_{i}2^{i}ki2i∑ki8i\sum k_{i}8^{i}ki8i∑ki16i\sum k_{i}16^{i}ki16i

eg.
(101.11)2(101.11)_{2}(101.11)2=1×22+0×21+1×20+1×2−1+1×2−21\times2^{2}+0\times2^{1}+1\times2^{0}+1\times2^{-1}+1\times2^{-2}1×22+0×21+1×20+1×21+1×22

不同数制间的转换

N(任意进制)转化位十进制

只需利用公式∑kiNi\sum k_{i}N^{i}kiNi展开,各项按十进制相加。

二、八、十六进制间的相互转换。
二进制八进制十六进制
212^{1}218=238=2^{3}8=2316=2416=2^{4}16=24

由图可知:1位八进制数对应3位二进制数,1位十六进制数对应4位二进制数。

二、八进制相互转换:
二进制3位数每位数的权值分别为1、2、4.只需将二进制数3位对应1位八进制数进行转换即可。

二、十六进制相互转换:
与八进制相互转换类似,二进制4位数每位数的权值分别为1、2、4、8.

八、十六进制相互转换:
推荐以二进制媒介,先转到二进制,再转到八或十六进制。

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

十进制转换为二进制:
先处理整数部分,十进制整数(S)10(S)_{10}(S)10可按权展开:
(S)10=(∑ki2i)=ki2i+ki−12i−1+.......+k121+k020(S)_{10}=(\sum k_{i}2^{i})=k_{i}2^{i}+k_{i-1}2^{i-1}+.......+k_{1}2^{1}+k_{0}2^{0}(S)10=(ki2i)=ki2i+ki12i1+.......+k121+k020
任务转化为求系数 kik_{i}ki
(ki2i+ki−12i−1+.......+k121+k020)=2(ki2i−1+ki−12i−2+.......+k120)+k0(k_{i}2^{i}+k_{i-1}2^{i-1}+.......+k_{1}2^{1}+k_{0}2^{0})= 2(k_{i}2^{i-1}+k_{i-1}2^{i-2}+.......+k_{1}2^{0})+k_{0}(ki2i+ki12i1+.......+k121+k020)=2(ki2i1+ki12i2+.......+k120)+k0
由此可知(S)10/2(S)_{10}/2(S)10/2的余数为k_{0},从而逐步求得各项系数。
在处理小数部分
小数部分可展开为:
(k−12−1+k−22−2+.......+k−m+12−m+1+k−m2−m)=2−1(k−1+k−22−1+.......+k−m+12−m+2+k−m2−m−1)(k_{-1}2^{-1}+k_{-2}2^{-2}+.......+k_{-m+1}2^{-m+1}+k_{-m}2^{-m})= 2^{-1}( k_{-1}+k_{-2}2^{-1}+.......+k_{-m+1}2^{-m+2}+k_{-m}2^{-m-1})(k121+k222+.......+km+12m+1+km2m)=21(k1+k221+.......+km+12m+2+km2m1)
有此可知小数部分乘以2后整数部分为k−1k_{-1}k1,以此类推可求得剩余各系数。

十进制转化为八、十六进制:
以二进制为媒介,先转化为二进制再转化为八、十六进制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值