计算机二进制、八进制、十进制、十六进制

本文介绍了进位计数制的基本概念,如二进制、八进制和十六进制的转换规则,以及十进制与任意进制间的转换方法,包括整数部分的除基取余和小数部分的乘基取整策略。此外,还涉及了负数的补码表示和浮点数的二进制表示及舍入误差计算。

一、初识进制

  1. 在进入进制转换的计算前我们先来认识进制吧!

    进制也就是进位计数制,对于X进制来说,就是逢X进一。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一。可使用数字符号的数目称为基数或底数,基数为n,即可称n进位制,简称n进制。

    进位记数法:

    在进位计数法中,每个数位所用到的不同数码的个数称为基数。十进制的基数为10(0~9),每个数位计满10就向高位进位,即“逢十进一”。每个数码所表示的数值等于该数码本身乘以一个与它所在数位有关的常数,这个常数称为位权。一个进位数的数值大小就是它的各位数码按权相加。

    这样看可能有些抽象,举个例子:

    234(10) = 2*10+3*10+4*10

    我们以十进制的234为例。那么对应公式中的基数r=10,其中的10,10,10就分别是第2,1,0位的位权(整数位最低位规定为第0位)。

    进制转换规则

    (二进制,八进制,十六进制)

    二进制:由两个数码0,1组成。为区别于其它进制,二进制数的书写通常在数的右下方注上基数2,或在后面加B表示,其中B是英文二进制Binary的首字母。例如:二进制数10110011可以写成(10110011)2,或写成10110011B。

    八进制:八进制的基数R=8=2,有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。八进制用下标8或数据后面加O表示

    十六进制:十六进制也是二进制的一种常用书写形式,其基数为16,“逢十六进一”。每个数位可取0~9、A、B、C、D、E、F中的任意一个,其中A、B、C、D、E、F分别表示10~15。因为r=16=2,因此4位二进制数码与1位十六进制数码相对应。

    注意:

    1)二进制转化为八进制或十六进制时需要分组转化,如果整数部分位数不够则最左位添0补位,小数部分位数不够则最右位添0补位

    例如:二进制数据 (11 101 010 . 010 110 10)2 = (011 101 010 . 010 110 100)2

    其中011 = 0*2+1*2+1*2=3(其余同理,不再赘述)

    对应八进制数据 (352 .264)8或352 .264O。

    2)同样,由八进制数或十六进制数转换成二进制数,只需将每位改为3位或4位二进制数即可(必要时去掉整数最高位或小数最低位的0)。

    3)八进制数和十六进制数之间的转换也能方便地实现,十六进数制转换为八进制数(或八进制数转换为十六进制数)时,先将十六进制(八进制)数转换为二进制数,然后由二进制数转换为八进制(十六进制)数较为方便。

    这里萧剑给大家提供常用几种进制的对应关系表格:

    二、进制转换规则(十进制与任意进制数)

    1)任意进制数转换为十进制数

    将任意进制数的各位数码与它们的权值相乘,再把乘积相加,就得到了一个十进制数。这种方法称为按权展开相加法。

    例如:(11011.1) =1×2+1×2+0×2+1×2+1×2+1×2= 27.5

    2)十进制数转换为任意进制数

    一个十进制数转换为任意进制数,常以小数点为界限,整数部分与小数部分进行分开处理。对整数部分用除基取余法,对小数部分用乘基取整法,最后将整数部分与小数部分的转换结果拼接起来。

    听起来有一些复杂,不过不要着急计算。我们先来介绍一下这两种方法如何使用。

    ※除基取余法(整数部分的转换):整数部分除基取余,最先取得的余数为数的最低位,最后取得的余数为数的最高位(即除基取余,先余为低,后余为高),商为0时结束。

    ※乘基取整法(小数部分的转换):小数部分乘基取整,最先取得的整数为数的最高位,最后取得的整数为数的最低位(即乘基取整,先整为高,后整为低),乘积为1.0(或满足精度要求)时结束。

    其实总结下来就是:

    1)整数除,小数乘(整数部分除以基数,小数部分乘以基数)
    2)整数余,小数整(整数部分取每次计算的余数,小数部分取每次计算的整数)
    3)整数升,小数降(整数部分结果从高位往低位写是上升趋势,小数部分结果从高位往低位写是下降趋势)

    记住这些口诀后我们用例子来实践:

    Q: 十进制243.25转化为二进制?

    因此整数部分:243(10)=11110011(2)

    因此小数部分0.25(10)=01(2)

    最终结果:243.25(10)=11110011.01(2)

、例题和答案

  1. 将十进制数7转换为二进制、八进制、十六进制表示。

解答:
二进制表示:111
八进制表示:7
十六进制表示:7

2、将二进制数1111 0110 1010 1111转换为十进制、八进制、十六进制表示。

解答:
二进制数:1111011010101111
十进制数:63215
八进制数:172527
十六进制数:F6AF

3、将十进制数-9转换为二进制、八进制、十六进制补码表示。

解答:
二进制补码:11110111(即将9的二进制表示取反再加1)
八进制补码:377
十六进制补码:F7

4、计算十进制数9和-8的补码表示,并计算它们相加的结果。

解答:
9的补码:00001001
-8的补码:11111000
相加的结果:00000001(即1的补码)

5、将十进制数13转化为二进制浮点数表示,并计算近似值和舍入误差。

解答:
二进制表示:1101
规格化:1.101 x 2^3
符号位为0,阶码为011(因为3+127=130,130的二进制表示为10000010,去掉最高位1就是011),尾数为1.101
近似值为12.8125(即1.101 x 2^3)
舍入误差为0.1875(即13-12.8125)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值