gpt4 book ai didi

C, 限制一个数字到 <= 64 的快速方法

转载 作者:太空宇宙 更新时间:2023-11-04 00:34:42 25 4
gpt4 key购买 nike

将数字限制为 64(即 <= 64)最快的方法是什么

len = len > 64 ? 64 : len; /* limit to 64 */

谢谢!

最佳答案

我创建了一个程序

#include <stdio.h>

int main(void) {
unsigned int len;
scanf("%u", &len);
len = len > 64 ? 64 : len;
printf("%u\n", len);
}

并用 gcc -O3 编译并生成了这个程序集:

cmpl    $64, 4(%rsp)
movl $64, %edx
leaq .LC1(%rip), %rsi
cmovbe 4(%rsp), %edx

leaq 加载了 "%u\n" 之间的字符串 - 我认为这是因为指令的时间安排。生成的代码看起来非常高效。没有跳跃,只是有条件的移动。没有 branch prediction failure .

因此,优化可执行文件的最佳方法是获得一个好的编译器。

关于C, 限制一个数字到 <= 64 的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50492891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com