微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

% 和 fmod() 使用多少 CPU 操作编程语言?

如何解决% 和 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 举报,一经查实,本站将立刻删除。