gpt4 book ai didi

dart - 将4字节转换为有符号整数

转载 作者:行者123 更新时间:2023-12-04 13:41:34 25 4
gpt4 key购买 nike

我正在尝试在浏览器中解析一个二进制文件。我有4个字节,代表一个32位带符号的整数。
是否有将其转换为dart int的简便方法,还是我必须手动计算二进制补码的逆数?

谢谢

编辑:使用它进行手动转换:

  int readSignedInt() {
int value = readUnsignedInt();
if ((value & 0x80000000) > 0) {
// This is a negative number. Invert the bits and add 1
value = (~value & 0xFFFFFFFF) + 1;

// Add a negative sign
value = -value;
}
return value;
}

最佳答案

您可以使用typed_data库中的ByteArray

import 'dart:typed_data';

int fromBytesToInt32(int b3, int b2, int b1, int b0) {
final int8List = new Int8List(4)
..[3] = b3
..[2] = b2
..[1] = b1
..[0] = b0;
return int8List.asByteArray().getInt32(0);
}

void main() {
assert(fromBytesToInt32(0x00, 0x00, 0x00, 0x00) == 0);
assert(fromBytesToInt32(0x00, 0x00, 0x00, 0x01) == 1);
assert(fromBytesToInt32(0xF0, 0x00, 0x00, 0x00) == -268435456);
}

关于dart - 将4字节转换为有符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322327/

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