gpt4 book ai didi

c++ - 使用(4 字节) `int` 表示数字和使用 4 元素无符号字符数组表示数字之间是否存在性能差异?

转载 作者:行者123 更新时间:2023-12-03 06:57:01 24 4
gpt4 key购买 nike

假设 C++ 中的 int 由 4 个字节表示,而 unsigned char 由 1 个字节表示,则可以表示 int带有 4 个元素的 unsigned char 数组,对吧?

我的问题是,用 unsigned char 数组表示数字是否有任何性能缺点?就像如果你想将两个数字相加在一起,与添加数组中的每个元素并手动处理进位相比,执行 int + int 会一样快吗?

这只是我尝试尝试和练习使用字节而不是一些实际应用。

最佳答案

使用 4 字节数组进行任何类型的操作都会有许多性能下降。例如,以简单的加法为例:现在几乎所有 CPU 都会有一条指令,在一个(可能是两个)CPU 周期内将两个 32 位整数相加。要使用 4 字节数组模拟这一点,您将需要至少 4 个独立的 CPU 指令。

此外,许多 CPU 在处理 32 位或 64 位数据时实际上比处理 8 位数据更快 - 因为它们的内部寄存器针对 32 位进行了优化 -和 64 位操作数。

关于c++ - 使用(4 字节) `int` 表示数字和使用 4 元素无符号字符数组表示数字之间是否存在性能差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64960528/

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