LeetCode刷题7——数字的补数
作者:互联网
一、要求
二、背景
最近工作中位运算遇到一个问题,温度有正负两种表示,而且还有小数点。例如用四个16进制字节表示,XXXX,其中第一位是占位符,中间两三位为温度的有效值,且最后一位的单位是16-1 从而可以表示出小数点。如果第二位中二进制最高位是1,那么表示这个数时负数,需要进行取反加1,即补数加1。下面在做完补数的基础上会生成一个小算法进行温度值得解析。
异或^:两位相异时值为1
与&:两位都为1时值为1
或|:有一个为1时结果为1
反~:第一位不变,后面的位全取反
三、思路
(1)对于计算补数,直接和对应为的值进行或运算。例如5表示101 ,101^111=010
所以只需要知道输入数的位数就可以进行补数找操作。
(2)温度数据的解析
当时一直卡壳在取反加1,特别是位运算中加1进位的问题,后来发现直接将得到的十进值加1即可
标签:101,运算,16,取反,LeetCode,温度,补数,刷题 来源: https://www.cnblogs.com/bethansy/p/12045844.html