Kevinrzy103874的博客

Kevinrzy103874的博客

动态线条
动态线条end
code: {

专注于分享信息学竞赛技巧、知识点、模拟赛及一些题目题解,又有着当码农的乐趣,有时还会写写比赛游记等等。

任我行信息学奥赛一本通-第二本:备战CSP-J-总第九章:CSP-J初赛篇-2.9.2-二进制、进制转换与位运算

1.二进制

  • 本质理解:
    • 二进制是计算机最基本的语言,因为电子元器件最容易实现两种稳定状态(开/关、高电压/低电压)。
    • 每一位二进制数称为一个"比特"(bit),这是信息的最小单位。

每一个二进制位都代表着\(2的幂\)

  • 举一个栗子:\((1011)_2\)
    • 最末位的\(1\)代表\(2^0\),也就是\(1\)
    • 倒数第二位的\(1\)代表\(2^1\),也就是\(2\)
    • 第二位的\(0\)代表\(0\)\(2^2\),也就是\(0\)
    • 第一位的\(1\)代表\(2^3\),也就是\(8\)
    • 那么\(1011\)代表的就是\(1 \ + \ 2 \ + \ 0 \ + \ 8 \ = \ 11\)

这种栗子用到的方法叫做位权

总结来说,就是按位相加

位权:\(R\)进制转成十进制,结果就是求\(\sum_{i \ = \ 0}^{位数 \ - \ 1} \ a_i \times R^i\)

这就是\(R\)转十的原理。

  • 上节课太枯燥了,这节课我们再来看一个栗子:\((-1011)_2\)

    • 你会说,怎么有负数啊,怎么转换?
    • 直接去除符号位计算整数位,再加符号
    • \(2^{-0} \ + \ 2^{-1} \ + \ 2^{-3} \ = \ -11\)

当你解决完这颗栗子时······

  • \((1011.1011)_2\)来凑热闹了
    • 啊,小数,别急,尝试可以用位权来做吗
    • 可以乘\(2^{-0}\)\(2^{-1}\)\(2^{-2}\)\(2^{-3}\)吗?
    • 当然可以,因为小数也是在分割\(1\)
    • 小数部分从左往右(小数点后第一位开始),每一位乘以\(2^{-n}\)\(n\) 为该位的位置索引,从\(1\)开始),再求和。
    • 小数点后第\(1\)位:\(1 × (2^{-1}) = 1 × 0.5 = 0.5\)
    • 小数点后第\(2\)位:\(0 × (2^{-2}) = 0 × 0.25 = 0\)
    • 小数点后第\(3\)位:\(1 × (2^{-3}) = 1 × 0.125 = 0.125\)
    • 小数点后第\(4\)位:\(1 × (2^{-4}) = 1 × 0.0625 = 0.0625\)
    • \(0.5 + 0 + 0.125 + 0.0625 = 0.6875\)
    • \(11 \ + \ 0.6875 = 11.6875\)

到这里\(R\)转十就学完了。

十转\(R\)

这时,被你看透真相的二进制又来挑性,你能把十进制伙伴转会二进制吗?

  • 这还是那颗一模一样的栗子\((11)_{10}\)

    • 看我请来短除法大军
posted @ 2025-08-11 21:20  Kevinrzy103874  阅读(74)  评论(0)    收藏  举报