Math 二进制字符串转换成十进制值,公式?

Math 二进制字符串转换成十进制值,公式?,math,binary,wolfram-mathematica,Math,Binary,Wolfram Mathematica,使用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"}]

使用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
我知道这是不正确的,如果有正确的公式,我会寻找正确的公式。((68*256)+67)*256+66)*256+70=1145258566

((68*256)+67)*256+66)*256+70=1145258566

FromDigits[Reverse[{70, 66, 67, 68}], 256]
也就是说,
68*256^3+67*256^2+66*256+70

看看你提到的不正确的公式,我建议读一读。还要考虑一下,如果有一种变量可以存储
k
不同的值(一个字节可以存储256个不同的值,通常通过
0..255
用整数标识),那么其中两个变量可以存储
k*k=k^2
不同的值,更一般地说,其中的
n
可以总共存储
k^n
不同的值。

FromDigits[Reverse[{70, 66, 67, 68}], 256]
也就是说,
68*256^3+67*256^2+66*256+70

看看你提到的不正确的公式,我建议读一读。还要考虑一下,如果有一种变量可以存储
k
不同的值(一个字节可以存储256个不同的值,通常通过
0..255
用整数标识),那么其中两个变量可以存储
k*k=k^2
不同的值,更一般地说,其中的
n
可以总共存储
k^n
不同的值