刷Leetcode的简单1523题看了官方做法,发现自己之前也见过用>>和<<做的,都没搞懂。乘或除以都能用位运算符号,看别的博说位运算符计算量比数学运算符少(?),故总结一下:
位运算符跟二进制相关,本人对二进制也不太了解,泪目
| 符号 | 名 | 理解 | 操作 |
| & | 与 | 和的意思 | a, b同一个位置是1和1才能得到1 |
| | | 或 | 或者的意思 | a, b同一个位置有1就能够得到1 |
| ^ | 异或 | 可以当做异否? | a, b同一个位置异的话,得到1 |
| ~ | 取反 | 非的意思 | a每个位置都反一次 |
| << | 左移动 | ←左推掉n个数,右缺位补0 | a乘2的n次方 |
| >> | 右移动 | →右挤掉n个数,左缺位补0 | a除以2的n次方 |
十进制转二进制:
①整数手算如下(负数没搞懂,待补):
补码知识:二进制的补码 - zgw2014 - 博客园今天在学习C Primer Plus(第五版)中文版.pdf的时候遇到这么个问题,先上代码: 结果: 请看我标红的部分,其实我蛮想不明白的,为什么-336的无符号整数是65200呢?书上说是2的补码(https://www.cnblogs.com/zengguowang/p/6074845.html
②python:bin()
bin(eval(input())) 3 Out[1]: '0b11'
bin()及补码python命令可见:Python获取数字的二进制值_大熊背的博客-CSDN博客_python 取二进制Python获取数字的二进制值目标想要获取一个整形数字的二进制表示bin 内置函数看一下官方的解释Convert an integer number to a binary string prefixed with “0b”. The result is a valid Python expression. If x is not a Python int object, it has to de...https://blog.csdn.net/lz0499/article/details/80726315



