疑问,1 按照余数位移,是啥意思? 请教各位

江湖评谈 2020-04-29 10:53:44
比如:

1<< (5% 8192),8192 是固定的1也是固定的,5是可变的,

这种啥意思


...全文
190 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
江湖评谈 2020-04-29
  • 打赏
  • 举报
回复
搞定了,谢谢两位
引用 5 楼 双杯献酒 的回复:
引用 6 楼 lin5161678 的回复:
江湖评谈 2020-04-29
  • 打赏
  • 举报
回复
引用 6 楼 lin5161678 的回复:
[quote=引用 3 楼 tangyanzhi1111 的回复:] [quote=引用 1 楼 lin5161678 的回复:] 超过int的bit个数是未定义行为 不可靠的
哪里超过了?int 在六十四位里面 8个字节 [/quote]x % 8192 最大 8191 64只是弟中弟[/quote] size_t card =card_of (xx); (1 << card_bit (card)) 这个结果是啥意思? #define card_word_width ((size_t)32) #define GC_PAGE_SIZE 0x1000 #define card_size ((size_t)(2*GC_PAGE_SIZE/card_word_width)) size_t card_of ( uint8_t* object) { return (size_t)(object) / card_size; } unsigned card_bit (size_t card) { return (unsigned)(card % card_word_width); }
江湖评谈 2020-04-29
  • 打赏
  • 举报
回复
引用 4 楼 双杯献酒 的回复:
1<< (x % 8192) 考虑到 x 不可能大于8192 所以等效于 1<<x
size_t card =card_of (xx); (1 << card_bit (card)) 这个结果是啥意思? #define card_word_width ((size_t)32) #define GC_PAGE_SIZE 0x1000 #define card_size ((size_t)(2*GC_PAGE_SIZE/card_word_width)) size_t card_of ( uint8_t* object) { return (size_t)(object) / card_size; } unsigned card_bit (size_t card) { return (unsigned)(card % card_word_width); }
lin5161678 2020-04-29
  • 打赏
  • 举报
回复
引用 3 楼 tangyanzhi1111 的回复:
[quote=引用 1 楼 lin5161678 的回复:] 超过int的bit个数是未定义行为 不可靠的
哪里超过了?int 在六十四位里面 8个字节 [/quote]x % 8192 最大 8191 64只是弟中弟
双杯献酒 2020-04-29
  • 打赏
  • 举报
回复
我怀疑是
(1<< x) % 8192
双杯献酒 2020-04-29
  • 打赏
  • 举报
回复
1<< (x % 8192)
考虑到 x 不可能大于8192
所以等效于
1<<x
江湖评谈 2020-04-29
  • 打赏
  • 举报
回复
引用 1 楼 lin5161678 的回复:
超过int的bit个数是未定义行为 不可靠的
哪里超过了?int 在六十四位里面 8个字节
lin5161678 2020-04-29
  • 打赏
  • 举报
回复
https://zh.cppreference.com/w/c/language/operator_arithmetic 任何情况下,若 rhs 为负或大于或等于提升后的 lhs 中的位数,则行为未定义。
lin5161678 2020-04-29
  • 打赏
  • 举报
回复
超过int的bit个数是未定义行为 不可靠的

64,666

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧