用24位二进制数来表示的RGB颜色,将其每位二进制数取反(0改为1,1改为0),即变为另一种颜色,这种操作称为颜色反相。若某RGB颜色值用十六进制表示为123456H,则其反相后的颜色值用十六进制表示为( )
这题别想成进制转换,直接按位反相算。十六进制每位对应4个二进制位,把123456H拆成六位,每位里的4个bit全部取反,再用十六进制写回去就搞定。
最容易把123456H当成十进制数去反相,或者只反相个位数字(比如把6变成9),忽略了十六进制每位代表4个bit。还有人会下意识想成字节反相,把整个数当8位处理,结果位数对不上。记住,反相是bit级操作,不是数字级操作。
这道题考查的是二进制位反相操作与十六进制表示的对应关系,属于计算机基础中数据表示与运算的范畴。命题人特意选了24位RGB颜色,其实就是为了让你用十六进制来简化计算——因为每位十六进制数恰好对应4个二进制位,这样不用展开成24个bit也能直接操作。
拿到题先想什么?别急着列竖式算24位,先拆解十六进制:123456H共有6位,每一位代表4个bit。反相就是把这24个bit全部0变1、1变0。操作心法很简单:逐位看,每位里的4个bit整体取反,再把结果转回十六进制。
具体怎么算?逐位反相(0111→1000=8,1000→0111=7,0110→1001=9,0100→1011=B,0101→1010=A,0110→1001=9):
拼起来就是 FEDCBA9H。
避坑指南:千万别把123456H当成十进制123456去反相,或者只反相个位数字(比如把6变成9),忽略了十六进制每位代表4个bit。还有人会下意识想成字节反相,把整个数当8位处理,结果位数对不上。记住,反相是bit级操作,不是数字级操作。
考频与趋势:根据历年真题统计,"位反相/取反"类题目在2013-2019年间共出现3次,集中在2015、2016、2018年,通常以单选题形式出现,难度中等偏上。这类题目喜欢结合十六进制、RGB颜色或ASCII码等实际应用场景,考查学生对二进制与十六进制转换熟练度。
预测:未来几年仍可能以类似形式考查位反相操作,但更倾向于结合图像像素处理、网络地址掩码等实际场景,增加一点应用背景,难度会略有提升。暂无足够依据预测具体年份或题型变化。