任我行信息学奥赛一本通-第二本:备战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}\)

- 看我请来短除法大军
本文来自博客园,作者:Kevinrzy103874,转载请注明原文链接:https://www.cnblogs.com/KevinSystemOlineJudge/p/19032762

浙公网安备 33010602011771号