java - 负数的位运算符
问题描述
为什么..
-23&30 = 8
5&-3 = 5
15&-1 = 15
我理解 & 正数,但由于某种原因,当抛出负数时,我不明白答案是如何得出的。
解决方案
您应该阅读关于以二进制表示负数的 2 的补码方法。
例如:
5 == 00000000 00000000 00000000 00000101
&
-3 == 11111111 11111111 11111111 11111101
= -----------------------------------
5 == 00000000 00000000 00000000 00000101
推荐阅读
- r - 在字符串的开头移动字符,在 R 中保持其他字符的位置不变
- javascript - MissingSchemaError:尚未为模型“用户”注册架构。尝试了stackOverflow上的所有答案
- system-verilog - super.build_phase() 有什么作用?
- openssl - 电子如何使用openssl?
- regex - VSCode:更改自定义TextMate语法中规则的优先级?
- css - 带文字的静态栏
- python - 如何使用 python 在 kafka 消费者中聚合 json 数据?
- amazon-web-services - 有没有办法使用 AWS step 函数中的状态输入来插入 OutputPath 的 JsonPath?
- python - MacOS Catalina 10.15.5 Flask-Mysqldb pip install 报错
- makefile - 带有`ifeq`的Makefile测试特定文件