使用Mathematica
Binary String: "FBCD"
#1
I: ImportString["FBCD", {"Binary", "Bit"}]
O: {0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, \
0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0}
#2
I: ImportString["FBCD", {"Binary", "UnsignedInteger32"}]
O: {1145258566}
#3
I: ImportString["FBCD", {"Binary", "Byte"}]
O: {70, 66, 67, 68}
使用#3输出中的字节值{70,66,67,68}获取#2输出中的int32值{1145258566}的实际数学公式是什么?
(70^4)+(66^3)+(67^2)+68
我知道这是不正确的,如果有的话,寻找正确的公式。
答案 0 :(得分:4)
是
FromDigits[Reverse[{70, 66, 67, 68}], 256]
即68*256^3 + 67*256^2 + 66*256 + 70
。
看看你提到的错误公式,我建议你阅读一下place-value notation。还要考虑如果你有一种可以存储k
个不同值的变量(一个字节可以存储256个不同的值,通常通过0..255
标识整数),那么这些变量中的2个可以存储{ {1}}不同的值,更一般地说,k*k = k^2
个值可以存储n
个不同的值。
答案 1 :(得分:3)
(((68 * 256)+ 67)* 256 + 66)* 256 + 70 = 1145258566