CSP初赛知识点讲解(二)

进制转换

基本定义

十进制:逢十进一(包含数字0~9)

( 365 ) 10 = 3 × 1 0 2 + 6 × 1 0 1 + 5 × 1 0 0 (365)_{10}=3\times10^2+6\times10^1+5\times10^0 (365)10=3×102+6×101+5×100

二进制:逢二进一(包含数字0~1)

( 1011 ) 2 = 1 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 (1011)_2=1\times2^3+0\times2^2+1\times2^1+1\times2^0 (1011)2=1×23+0×22+1×21+1×20

n进制转十进制

我们一般采用按位展开,下面以二进制转十进制为例

二进制转十进制:按位展开 ( 1011 ) 2 = 1 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 = 11 (1011)_2=1\times2^3+0\times2^2+1\times2^1+1\times2^0 =11 (1011)2=1×23+0×22+1×21+1×20=11

十进制转n进制

我们一般采用短除法,下面以十进制转二进制为例

十进制数13转化成二进制数

在这里插入图片描述

结果为:1101

n进制转m进制

直接转换有公式,但是太麻烦,统一先把m进制数转 换成十进制数,再把十进制数转换成n进制数。(和二转 十,十转二相同)

二进制转4,8,16进制可以快速转换。

如2转8,23=8,所以每3位二进制可以看做一位8进制。 反过来也是一样

11 110 101 101 从后往前分别为3,6,5,5,位数不足, 最前面补0

小数的进制转换

整数的进制转换会了,那么如果遇到小数的进制转换怎么办呢?其实也很简单。

小数二进制转十进制: 整数部分是$\times$2的…3,2,1,0次方,那么小数部分照旧,按照位数继续乘以2的-1,-2,-3…次方就可以了。 比如0.0101=$1\times2{-2}+1\times2{-4} $

小数十进制转二进制也差不多,以前是/2,现在变成2, 比如0.25转换成二进制。0.252=0.5取整数位0,0.5*2=1, 取整数位1,小数位没有了就不管了,最终的答案就是 0.01。比如0.4转换成二进制就是无限循环形式。

初赛的时候小数转换选择题其实很简单的,因为要显示出来那么肯定不能是无限循环小数。 所以对于2转10,一般都是0.1,0.11之类的,很简单,二 进制的0.2相当于就是十进制的1.0,那么0.1就是0.2的 一般,对应十进制1.0的一半就是0.5. 对于10转2,如果要是有限小数,一般都是0.125,0.25, 0.5之类的,和刚才一样0.25是1的1/4,所以答案就是 0.01。

例题训练(四)

  • 【NOIP2000】下列无符号数中,最小的数是()。

    A.(11011001)2 B.(75)10 C.(37)8 D.(2A)16

    答案:C

    题解:要比较不同进制的数的大小,可以将它们转换为十进制数进行比较。在这道题中,我们需要将每个数转换为十进制数,然后比较它们的大小。最小的数是十进制数37,对应的八进制数就是最小的。

  • 【NOIP2001普及组】与二进制数101.01011等值的十六进制数为()。

    A.A.B B.5.51 C. A.51 D. 5.58

    答案:D

    题解:要将二进制数转换为十六进制数,可以先将二进制数转换为十进制数,然后再将十进制数转换为十六进制数。101.01011的十进制等值是5.34375,转换为十六进制数就是5.58。

  • 【NOIP2002普及组】(0.5)10=( )16

    A.0.1 B.0.75 C.0.8 D.0.25

    答案:C

    题解:这是一个简单的数制转换题目。将十进制的0.5转换为十六进制数,得到的结果是0.8。

  • 【NOIP2002】算式(2047)10 - (3FF)16+(2000)8的结果是()。

    A.(2048)10 B.(2049)10 C.(3746)8 D.(1AF7)16

    答案:A

    题解:这是一个进制间的运算题目。首先将十六进制和八进制数转换为十进制数,然后进行加减法运算。最终结果为十进制数2048。

  • 【NOIP2003】十进制数2003等值于二进制数()。

    A.11111010011 B.10000011 C.110000111 D.010000011

    E.1111010011

    答案:A

    题解:将十进制数2003转换为二进制数,得到的结果是11111010011。

  • 【NOIP2004提高组】十进制数100.625等值于二进制数()。

    A.1001100.101 B.1100100.101 C.1100100.011 D.1001100.11 E.1001100.01

    答案:B

    题解:将十进制数100.625转换为二进制数,得到的结果是1100100.101。

在这里插入图片描述

  • 31
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值