integer-division - 负数的右移除法
问题描述
在无符号整数的情况下u
,我们可以很容易地得到商u>>k
(k 表示除以 2^k)
但在负数的情况下,它应该计算为(u+(1<<k)-1)>>k
我可以看到这u>>k
不适用于负数。
但我很好奇为什么我们必须(1<<k)-1
添加u
任何解释都可能真的很有帮助。
解决方案
推荐阅读
- docker - 由于 ssh 密钥,Git 推送失败:主机密钥验证失败。从码头工人内部
- javascript - 从 React 组件调用函数时的异步行为
- reactjs - 从道具中的函数反应返回字符串
- java - Apache POI 3.17 HSSF 不接受“IFERROR”
- reactjs - React lazy load won't work inside React perfect scroll bar
- c++ - Doubly Linked List with struct c++
- spring - Spring Boot 数据源配置
- javascript - Using jQuery to auto calculate amount
- python - How to reset a global variable and pass it to Decorator
- mysql - What is wrong with the following trigger before an update?