Excel:如何将十进制数字转换为3字节二进制文件

时间:2019-07-24 08:04:19

标签: excel excel-formula

考虑十进制数字10093264。我想将此数字转换为3字节的二进制数,并将每个字节的值显示为十进制。即我想将上述数字改写为:

154 2 208

那么,实现这一目标的可能方法是什么?

我当时在想DEC2BIN给我二进制数字。但这是问题所在:此功能仅允许输入最多8位!我的数学不是最好的,所以也许。可以帮助我:我需要除以什么? 例如,我意识到QUOTIENT(10093264;2^16)给出了154,这就是我的LSB。但是我不能使用相同的方法给我其他字节。

2 个答案:

答案 0 :(得分:2)

使用BITAND(按位与)和整数除法或BITRSHIFT(按位右移)

因此,最小的字节(208)仅为=BITAND(10093264,255)-这将为您提供最后8位:

  100110100000001011010000 : 10093264
& 000000000000000011111111 : 255
= 000000000000000011010000 : 208

对于下一个最小字节(2),可以从整数除法(INT(10093264/256))或BITRSHIFTBITRSHIFT(10093264, 8))开始,然后使用{{1} },再次:

BITAND

然后,对下一个字节再次执行相同操作: 100110100000001011010000 : 10093264 → 000000001001101000000010 : 39426 & 000000000000000011111111 : 255 = 000000000000000000000010 : 2 除以16(2个字节)或除以65536(即BITRSHIFT

POWER(256,2)

如果要在1个单元格中全部完成操作(并且拥有 100110100000001011010000 : 10093264 → 000000000000000010011010 : 208 & 000000000000000011111111 : 255 = 000000000000000010011010 : 208 函数的Office 365),则可以使用此数组公式。它使用TEXTJOIN算出有多少字节,并输出带空格的

LOG

(作为数组公式,插入时需要使用 Ctrl + Shift + Enter

答案 1 :(得分:1)

功能

=ROUNDDOWN(10093264/2^16,0) & " " & ROUNDDOWN(MOD(10093264,2^16)/2^8,0) & " " & ROUNDDOWN(MOD(MOD(10093264,2^16),2^8),0)