c++ - 如何确定int的位数

标签 c++ c sizeof

这是我尝试过的:

int i=-1,size=1;
while (i>>1)
    size++;
printf("%d",size);

目标是确定 int 的大小不使用sizeof运算符。

上面的循环结果是无限的。有没有办法修复它,使其达到预期的效果?

最佳答案

只需使用 unsigned 表示 i,而不是 int。他们是 保证具有相同的大小,并且有符号整数的右移是实现定义的(但通常会移入符号位)。并且不要忘记划分 由 CHAR_BIT 得出的结果(保证为 8)。

关于c++ - 如何确定int的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17522339/

相关文章:

c++ - Qt 翻译 lupdate 和命名空间

c - 当我执行 "kill -11 0"时,我的 shell 出现段错误

c - 用指针复制数据结构

c++ - GCC 的 decltype(auto) 不符合标准?

c++ - 正确删除 char **?

c - 使用无符号索引执行反向 'for' 循环的最佳方法是什么?

c++ - Windows 构建系统 : How to build a project (from its source code) which doesn't have *. sln 或 Visual C++ 项目文件 (*.vcproj)

c - 理解 size_t 类型和 sizeof 运算符的问题

c++ - cpp 中此指针的大小

c++ - 在非 pod 结构上使用 operator new + Initializer list