今天在刷Leetcode时,做到1017.负二进制转换,一时间毫无头绪,虽然参考了大佬的题解,但是仍然不是特别懂,在此过程中回忆了之前的十进制正整数转换成二进制数。
十进制整数转换成(正)二进制数策略:
除2之后将余数倒序排列, 直到商小于1
举例子如下:
例如8为二进制数(这里以其表示的整数来看):依据正整数转二进制数策略,每次进行除2操作(8位中"x"代表"1")
原数据为 x000xxx0
第一次: x000xxx -> 余0
第二次: x000xx -> 余x
第三次: x000x -> 余x
...
这就容易理解了,若某次除2,其余数为1,则代表本次二进制数的末尾是1
但是负二进制转换就不明所以了,因为其中需要考虑的东西太多,会出现商为负数的情况,这就很麻...暂时没搞懂,等搞懂了就会回来更的!!!