相关疑难解决方法(0)

在32位CPU上,"整数"类型比"短"类型更有效吗?

在32位CPU上,整数是4个字节,短整数是2个字节.如果我正在编写一个使用许多数值的C/C++应用程序,它总是符合短整数的提供范围,那么使用4字节整数或2字节整数会更有效吗?

我听说它建议4字节整数更有效,因为它适合从内存到CPU的总线带宽.但是,如果我将两个短整数相加,那么CPU是否会在一次通过中并行封装两个值(从而跨越总线的4字节带宽)?

architecture cpu integer 32-bit cpu-architecture

9
推荐指数
4
解决办法
6547
查看次数

>>班次操作员没有按预期工作

我正在学习C语言.我有这个代码,如果需要可以提供更多代码:

int result = 0;
int mask1 = 0x0000ffff;
mask1 = mask1 >> 28;
Run Code Online (Sandbox Code Playgroud)

这个当我使用gdb和print时/x mask1,我得到了0x0,这是正确的.那么为什么:

int result = 0;
int mask1 = 0xffffffff;
mask1 = mask1 >> 28;

print 0xffffffff
Run Code Online (Sandbox Code Playgroud)

不应该打印0x0000000f,因为我要换28位?

是否与我的64位机器上占用的int位数有关?我看着这个,但它并没有完全回答所有问题.

c gdb

1
推荐指数
1
解决办法
490
查看次数

标签 统计

32-bit ×1

architecture ×1

c ×1

cpu ×1

cpu-architecture ×1

gdb ×1

integer ×1