如何在 dart/flutter 中声明 64bit unsigned int?
Posted
技术标签:
【中文标题】如何在 dart/flutter 中声明 64bit unsigned int?【英文标题】:How do I declare 64bit unsigned int in dart/flutter? 【发布时间】:2019-05-04 11:38:04 【问题描述】:对于一个应用程序,我需要一个 64 位无符号整数。查看 dart 文档,我不知道如何确切地声明一个。
谁能告诉我这是怎么做到的?我将在按位运算中使用这个“64bit unsigned int”。
【问题讨论】:
【参考方案1】:Dart 没有原生无符号 64 位整数。
对于许多操作,您可以只使用int
所在的有符号 64 位整数,并将其解释为无符号。这是相同的位。但是,这不适用于除法。 (如果是用于网络,那么 int
是一个 javascript 编号,你需要做一些完全不同的事情。
最简单的通用方法是使用BigInt
,并在对其进行任何操作后使用toUnsigned(64)
。
【讨论】:
我的理解是,在 64 位有符号int
中,其中一位是为符号保留的,只有 63 位可用于存储值。我需要将所有 64 位用于值。
我的观点可能不是很好,即 bits 是相同的。有符号的 64 位整数不为符号保留位,它是 2 的补码表示,其中设置了最高有效位会使数字为负,但模 2^64 它仍然与相同的无符号解释相同位。对于许多操作,结果与那些 64 位被解释为有符号还是无符号无关。最后,如果你想打印结果,或者你想划分或做右移,这将很重要。如果需要,请使用BigInt
。
谢谢,看来我必须使用BigInt
,因为我需要使用轮班。
我同意。当 Dart 得到 >>>
操作符后,你应该也可以处理无符号班次了,但还没有。
简而言之,我们必须使用int?【参考方案2】:
只需使用fixnum
您可以使用Int64()
轻松创建int64
【讨论】:
以上是关于如何在 dart/flutter 中声明 64bit unsigned int?的主要内容,如果未能解决你的问题,请参考以下文章
Dart/Flutter 中用于 FHIR 资源的 Json oneOf
flutter - 如何在 dart/flutter 中收听流值
flutter - 如何在Dart/Flutter中将某些元素从一个Map复制到新Map中?