繁体   English   中英

C ++ - Variable中的3个可能值?

C++ - 3 possible values in Variable?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我需要存储一个30个字母的组合,但每个字母只能是“0”,“1”或“2”。 当我使用sizeof(myString)时,它返回32。

我想使用这个30个字母组合来访问一个数组的行,所以我想知道是否可以使用某种值的3值bool来存储3个值中的1个。

3 个回复

3 ^ 30 = 205891132094649(~2E14),小于64位整数(~2E19)的最大值,因此您可以以1:1的方式将字符串映射到64位整数。

一个显而易见的方法是将您的字符串视为base-3数字,转换速度很慢。 将它作为基数4处理得快得多,然后可以完全通过比特移位(无模数除法/乘法)完成转换,这是可能的,因为4 ^ 30仍然小于2 ^ 64。

允许你处理大小为C和C ++的最小单位(在结构中没有位域使你的代码非常不实用)就是char 即使它仅使用一个位,即使bool也会解析为char的大小。 因此,使用其他类型不会增加任何内存。 唯一可能的改进是使用与数组完全不同的类型。

Boost有一个用于3值布尔值的tri-bool库,但我实际上并不建议你在这里使用它。 如上所述,最好只将值映射到填充为64位的2位数字。

1 编写一个循环,根据大量可能的有效值检查变量的值 (C++)

如果有更好的方式来表达这个问题,请告诉我。 可能是为什么我在谷歌搜索时找不到它。 我目前正在开发一个程序,该程序在二进制文件中搜索字节字符串 0xB800000000000000,然后一次返回 8 个字节以查找不适合列表的字节。 例如,字节 0x04、0x06、0xB1、0xB7(以及大量其他字节) ...

3 将最大可能值设置为变量 C++

这应该是一个简单的问题,但我无法在谷歌上找到答案。 那么,我如何为变量分配最大可能值? 所以我希望我的变量不超过 10 作为可能的值,无论如何 ...

5 可以在C ++中使用cin命名变量吗?

假设我定义了一些常量: 有什么方法可以让用户输入诸如NUMBER或NUMBER_2并将其转换为值,而不必使用string和大量的if语句或switch语句进行cin ? 在此分配中,我有很多以这种方式定义的常量,而且我不应该更改它们(无论如何都要花很长时间)。 ...

2016-05-14 01:57:12 0 143   c++/ cin
6 是否可以在C ++中动态分配一个临时变量?

是否可以在C ++中动态分配一个临时变量? 我想做这样的事情: 该代码有效,但问题是我必须创建另一个字符串才能将其作为指针返回。 有没有一种方法可以将我的临时/局部变量放入堆中而无需重新创建其他对象? 这是我将如何执行此操作的说明: ...

7 是否可以将静态变量添加到 C++ 结构?

尝试向结构中添加静态变量时出现以下错误: 模块 file_name.cpp 中的未定义符号 s2::aa s2是结构的名称, aa是静态变量。 我使用的编译器是 Turbo C++ 3.0。 我该如何解决这个错误? ...

2009-07-13 16:56:23 7 25078   c++
9 是否可以在C ++中的表达式中定义变量?

我有这个疯狂的作业,我必须在其中创建一个表达式来验证关于朱利安和格里高利历以及许多其他事情的日期... 问题在于它必须全部在一个表达式中,所以我不能使用任何一个; 可以在表达式中定义变量吗? 就像是 在这里我可以定义和初始化一个或多个变量,并在一个表达式中使用它们而无需使用 ...

10 C ++中是否只能使用堆栈变量?

目前我想在多线程环境中创建包装器访问器类。 这个类的目的很简单 - 抓住它的结构锁定并释放它的破坏锁定。 除此之外,它与普通指针相同。 此外,我想防止在堆区域上创建它以确保最终释放锁。 逆是相当容易的(私有构造函数与工厂方法),但我不知道只有堆栈的变量是可能的。 反正呢? ...

2010-10-26 09:08:38 2 403   c++/ stack
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM