二进制基础:从考纲到考场,这份避坑指南够你用了

教了十几年计算机基础,说实话,每学期都有学生栽在二进制上。明明是最简单的进制,却总有人把原码和补码的转换过程搞反。今天咱们就把它掰开揉碎了讲清楚。

高频考点:就这四处

二进制基础高频核心考点,翻来覆去就是这四个:进制转换、原码/反码/补码、位运算、二进制与十进制的互相转换。其中进制转换是绝对的大头,几乎年年考。

先说十进制转二进制,用除2取余法。比如13,不断除以2,余数倒着写,得1101。这操作简单吧?但考场上总有同学把余数正着写。一个数字错了,后面全完蛋。

再说二进制转十进制,位权展开。从最右边开始,每一位乘以2的n次方,n从0开始。例如1101就是1×2^3+1×2^2+0×2^1+1×2^0=13。这里关键是把每一位的权重算对。注意,小数部分要乘以2的负次幂,但基础题一般只考整数。

二进制基础进制转换对照表图
二进制基础进制转换对照表图

原码反码补码:一团乱麻?一节课捋顺

这个可是重灾区。我阅卷的时候,看到好多学生把负数的补码求成原码了。咱们理理清楚。

原码就是符号位加绝对值,比如-5的原码是1000 0101(8位)。反码呢?正数的反码等于原码,负数则是对除符号位外的其他位取反。所以-5的反码是1111 1010。补码呢?负数的补码是反码加1,所以-5的补码是1111 1011

注意!这里有一个特别容易踩的坑:取反的时候,符号位千万别动。很多同学把符号位也反了,直接废掉。

另外还有一个冷门考点:补码的补码就是原码。所以如果你算完补码想验证,可以再求一次补码,看能不能回到原码。这招很实用,强烈推荐。

原码反码补码转换步骤图解
原码反码补码转换步骤图解

位运算:看起来简单,丢分最多

位运算:看起来简单,丢分最多
位运算:看起来简单,丢分最多

位运算这块,好多同学觉得就是“与”“或”“非”,太easy了。结果一考就懵。我出一道题:8的二进制是1000,那么8>>1等于多少?正确答案是4。右移一位相当于除以2。

但如果你移的是负数呢?比如-8的右移,在语言里是算术右移还是逻辑右移?考题里经常给你一个C语言运算符,让你算结果。这里有个关键:对于无符号数,右移是逻辑右移,高位补0;对于有符号数,算术右移,高位补符号位。这个考点,基本每年都有学生掉坑。

再比如位运算的优先级。很多人以为&比&&高?其实呢,优先级顺序是!>算术运算符>关系运算符>&>^>|>&&>||。这个不用死记,但题目中最好加括号。我就在试卷上看到过有人写`a&b==c`,结果理解成`(a&b)==c`,其实应该是`a&(b==c)`?不对,实际上`==`优先级高于`&`,所以是`a & (b==c)`。看,一个小小的优先级就能让你出错。

典型例题:手把手教你拿满分

典型例题:手把手教你拿满分
典型例题:手把手教你拿满分

来一道经典题:求十进制数-5的8位补码,并写出过程。

标准答题思路:

第一步,写出绝对值5的二进制:0000 0101。

第二步,求反码:除符号位外取反,得1111 1010。

第三步,补码=反码+1,得1111 1011。

最后一步,检查:符号位为1,表示负数,数值部分为111 1011。如果想验证,可以将这个补码再次取反加1,得到原码,看是否等于-5的绝对值。算一下:1111 1011取反(符号位不动)得1000 0100,加1得1000 0101,正好是-5的原码。完美。

注意:如果你求的是反码,那么第二步就是最终答案。别把补码当反码写上去。

答题技巧与避坑指南:来自阅卷现场的忠告

答题技巧与避坑指南:来自阅卷现场的忠告
答题技巧与避坑指南:来自阅卷现场的忠告

最后给你几个干货,都是我自己总结的。

技巧一:除2取余要倒着写。每次算完,从下往上读。为了防止手滑,可以在草稿纸上画个箭头。

技巧二:善用补码验证。算完补码后,马上再求一次补码,能回到原码就说明你算对了。这个方法虽然多花几秒,但正确率直线上升。

避坑指南一:看清题目问的是原码、反码还是补码。这三个长得像,但答案差远了。用笔圈出关键词。

避坑指南二:注意位数限制。题目要求8位还是16位?位数不同,结果长度不同。8位-5是1111 1011,16位是1111 1111 1111 1011。别写错。

避坑指南三:检查符号位。正数补码符号位是0,负数补码符号位是1。要是结果符号位不对,肯定错了。

好了,这些就是二进制基础的精华。你把这些弄懂,考试基本稳了。如果还有不懂的,可以在评论区留言,我看到就回。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:二进制基础:从考纲到考场,这份避坑指南够你用了
文章链接:https://www.lfdjt.com/info_35_8718.html