社区讨论
关于有符号整数位移
学术版参与者 5已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @mhz484d9
- 此快照首次捕获于
- 2025/11/15 01:12 3 个月前
- 此快照最后确认于
- 2025/11/16 13:45 3 个月前
刚刚搓了道题(这个),其中的数据生成用了一些有符号的整数位移。然后发现这个东西似乎是 ub。于是开始爆改:
CPPinline int next_integer(int x) {
__asm__ (
"mov %0, %%eax\n\t"
"sal $13, %%eax\n\t"
"xor %%eax, %0\n\t"
"mov %0, %%eax\n\t"
"sar $17, %%eax\n\t"
"xor %%eax, %0\n\t"
"mov %0, %%eax\n\t"
"sal $5, %%eax\n\t"
"xor %%eax, %0"
: "+r" (x)
:
: "eax"
);
return x;
}
这个东西应该没有 ub 了吧?
回复
共 6 条回复,欢迎继续交流。
正在加载回复...