如何解决% 和 fmod() 使用多少 CPU 操作编程语言?
机器语言中%操作符和fmod()函数的C翻译结果是什么?它的实现是什么?
例如:61199 % 256
的解法与 61199 % 171
的解法相同吗?
解决方法
如果平台支持整数除法,就像所有现代非嵌入式处理器一样,它是一条指令。除法指令给出商和余数。
考虑这个 C 程序 (https://godbolt.org/z/vxj8fKdjG):
int main() {
int a = 61199;
int b = 171;
int c = a % b;
}
它编译为:
main:
push rbp
mov rbp,rsp
mov DWORD PTR [rbp-4],61199
mov DWORD PTR [rbp-8],171
mov eax,DWORD PTR [rbp-4]
cdq
idiv DWORD PTR [rbp-8]
mov DWORD PTR [rbp-12],edx
mov eax,0
pop rbp
ret
在这个输出中,idiv
是除法指令。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。