我正在尝试将此十六进制转换为正确的INT32 Big Endian:
ffd7c477 --> -2636681
我检查了它应该如何看待:
http://www.scadacore.com/tools/programming-calculators/online-hex-converter/
我不知道如何转换它。这是纬度
的地方payload = "1901000a03010aff01ff01300a01ffd7c4750016c0540322ed"
latitude = payload[28:36] = ffd7c477
这里我得到了错误的无符号值:
int(binary[28:36], 16)
答案 0 :(得分:1)
这有效POST active_users/document_type1/_search
{
"size": 0,
"aggs": {
"filtered_active_users_7_days": {
"filter": {
"range": {
"last_activity": {
"gte": "now-7d/d"
}
}
},
"aggs": {
"date_histogram_last_7_days": {
"date_histogram": {
"field": "last_activity",
"interval": "day"
}
}
}
}
}
}
答案 1 :(得分:0)
由于Python默认使用处理器体系结构的字节顺序来处理数字(您可以使用sys.byteorder
检查系统字节顺序),因此您必须明确指定要将给定值视为大端。 struct
模块允许您执行此操作:
import struct, codecs
val = "ffd7c477"
struct.unpack("!i", codecs.decode(val, "hex"))
unpack
的第一个参数:!
表示将字节视为大端,i
表示将字节视为int32值。