【发布时间】:2013-07-18 04:39:51
【问题描述】:
我正在尝试从比特币交易中读取价值 - https://en.bitcoin.it/wiki/Transaction
wiki 说它是一个 8 字节整数,但我没有尝试使用 unpack 给我正确的十进制值。
我已经能够从事务中读取除输出中的值之外的所有其他内容 - 鉴于我已设法解析所有与正确值对齐的其他字段,看来我正在读取正确的 8 个字节。
与:
$bin = hex2bin('00743ba40b000000');
$value = unpack('lvalue', $bin);
// 'value' => int -1539607552
和
$bin = hex2bin('d67e690000000000');
$value = unpack('lvalue', $bin);
// 'value' => int 6913750
应该是 500 和 0.0691375。
【问题讨论】:
-
您在这里使用的
$data是什么? -
嗯,该页面的哪一部分是二进制数据? “原始交易”仍然看起来像 JSON。
-
您必须自己从网络上下载交易以获得完整的二进制版本,该站点仅说明格式,不分发二进制版本。为简单起见,我已将二进制转换为十六进制,将十六进制添加到我的问题中并将其转换回二进制。
-
@PeterO。我无法更改这些数字的存储方式 - 这是既定协议的一部分。