gpt4 book ai didi

enums - 将枚举转换为二进制(通过整数或类似的东西)

转载 作者:行者123 更新时间:2023-12-04 17:37:33 27 4
gpt4 key购买 nike

我有一个带有 2 个值的 Ada 枚举 type Polarity is (Normal, Reversed) ,我想分别将它们转换为 0、1(或 True、False——因为 Boolean 似乎隐式地像二进制一样好),所以我可以将它们的值存储为一个字节中的特定位。我怎样才能做到这一点?

最佳答案

一个简单的方法是查找表:

Bool_Polarity : constant Array(Polarity) of Boolean 
:= (Normal=>False, Reversed => True);

然后将其用作
 B Boolean := Bool_Polarity(P);

当然,使用'Pos 属性并没有错,但是LUT 使映射变得可读且非常明显。

由于它是恒定的,您希望它在恒定折叠阶段优化掉,并且似乎:我使用了类似的技巧来编译具有非常可接受的可执行大小的 AVR(低至 0.6k 以独立驱动 2 个步进电机)

关于enums - 将枚举转换为二进制(通过整数或类似的东西),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13694909/

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