gpt4 book ai didi

c++ - 获取 char 中的位数

转载 作者:可可西里 更新时间:2023-11-01 18:04:14 32 4
gpt4 key购买 nike

如何获取类型 char 中的位数?

我知道 CHAR_BIT来自 climits .这被描述为 »宏产生用于表示 char 类型对象的位数的最大值。« 在 Dikumware's C Reference .我知道这意味着 char 中的位数,不是吗?

我可以用 std::numeric_limits 得到相同的结果吗?不知何故? std::numeric_limits<char>::digits返回 7正确但不幸的是,因为这个值在这里尊重 8 位字符的符号......

最佳答案

CHAR_BIT根据定义,是 [signed/unsigned] char 类型的对象表示 中的位数.

numeric_limits<>::digits 是给定类型的值表示中非符号位数。

您需要哪一个?

如果您正在寻找对象表示中的位数,那么正确的方法是采用 sizeof类型并将其乘以 CHAR_BIT (当然,在 sizeof 类型的特定情况下乘以 char 没有意义,因为它们的大小始终为 1,而且根据定义 CHAR_BIT 已经包含您需要的内容)。

如果您在谈论值表示,那么 numeric_limits<>是要走的路。

对于 unsigned char type 对象表示的位大小 ( CHAR_BIT ) 保证与值表示的位大小相同,因此您可以使用 numeric_limits<unsigned char>::digitsCHAR_BIT可以互换,但从概念的角度来看,这可能是有问题的。

关于c++ - 获取 char 中的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2247188/

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