Types 比特类型创建

Types 比特类型创建,types,type-conversion,julia,Types,Type Conversion,Julia,如何使用bitstype 我尝试了Base.box/Base.unbox,但都不起作用。我读到应该使用重新解释。它奏效了: bitstype 32 Blah32 blah32 = reinterpret(Blah32, 8) # Blah32(0x00000008) 但是,使用此方法,我无法创建具有(例如)2048位的bitstype 如何使用bitsype创建包含任意位数的类型?您需要一个足够大的内存块,以便重新解释工作 bitstype 2048 Blah2048 blah2048 = r

如何使用
bitstype

我尝试了
Base.box
/
Base.unbox
,但都不起作用。我读到应该使用
重新解释
。它奏效了:

bitstype 32 Blah32
blah32 = reinterpret(Blah32, 8)
# Blah32(0x00000008)
但是,使用此方法,我无法创建具有(例如)2048位的
bitstype


如何使用
bitsype
创建包含任意位数的类型?

您需要一个足够大的内存块,以便重新解释工作

bitstype 2048 Blah2048
blah2048 = reinterpret(Blah2048, [1:32])

 1-element Array{Blah2048,1}:
 Blah2048(0x0000000000000020000000000000001f000000000000001e000000000000001d000000000000001c000000000000001b000000000000001a0000000000000019000000000000001800000000000000170000000000000016000000000000001500000000000000140000000000000013000000000000001200000000000000110000000000000010000000000000000f000000000000000e000000000000000d000000000000000c000000000000000b000000000000000a000000000000000900000000000000080000000000000007000000000000000600000000000000050000000000000004000000000000000300000000000000020000000000000001)
如果你提供了当你说它不起作用时得到的错误,那就太好了
BoundsError()
实际上信息量很大,因为它表示您正在读取正常整数的64位之外的内存


还有。为什么要创建这么大的位类型?您的处理器不支持它们,因此必须模拟它们。根据您的使用情况,您可能能够更快地编写代码,而无需额外的抽象层。

2048位只是一个可以除以8的随机数(0.2版要求)。我没有为
box
/
unbox
包含错误,因为我认为它们不应该被使用。此外,您的节中还有一个小错误:
blah2048=reinterpret(blah2048[1:64])
。在那之后,它就起作用了。谢谢。如果您使用的是32位系统,那么您将需要64个32位整数,而不是32个64位整数,才能获得2048位的总数。