numbers - 如何将一个数字划分/编码为一组位数组,这些位数组因数/乘法/等得到原始数字
问题描述
14852543
我在某处发现了数字的“十进制字节”表示226 161 191
。我认为这是因为它以某种方式将或乘以这个数字,但我不确定它是如何完成的。
问题的第一部分是如何将这些字节值转换回数字。问题的第二部分是,如何将一个数字分解为一组位数组(不是字节),它们完成与上述相同的事情。因此,例如,可能是 5 个 7 位数字或 12 个 3 位数字,而不是 3 个 8 位数字。想知道什么方程或算法可以做到这一点。
解决方案
以 14852543 作为示例输入。
案例 1 [12 个 3 位数字]:
第 0 步:设置位组。12×[000]。或 [ 000 000 000 000 000 000 000 000 000 000 000 000 ]
第一步:将 14852543 转换为二进制。应该得到 111000101010000110111111 。
第 2 步:111000101010000110111111 到 [000 000 000 000 111 000 101 010 000 110 111 111]。
第 3 步:[000 000 000 000 111 000 101 010 000 110 111 111] 到[0 0 0 0 7 0 5 2 0 6 7 7]
案例 2 [5 个 7 位数字]:
第 0 步:设置位。5 x [0000000] 。或 [ 0000000 0000000 0000000 0000000 0000000 ]
第一步:将 14852543 转换为二进制。应该得到 111000101010000110111111 。
步骤 2:111000101010000110111111 到 [0000000 0000111 0001010 1000011 0111111]。
第 3 步:[0000000 0000111 0001010 1000011 0111111] 到[0 7 10 67 63]
案例 3 [ 3 个 8 位数字 ]:
第 0 步:设置位。3 x [00000000] 。或 [ 00000000 00000000 00000000 ]
第一步:将 14852543 转换为二进制。应该得到 111000101010000110111111 。
第 2 步:111000101010000110111111 到 [11100010 10100001 1011111]。
第三步:[11100010 10100001 1011111]到[226 161 191]
希望它回答......(:
推荐阅读
- linux - 删除 -mtime 选项中的硬编码天数以在 shell 脚本中查找文件
- vue.js - Vue 无法读取 undefined 的属性影片
- architecture - 手柄的另一边是什么?
- javascript - 通过 $set 更改对象属性给出:“TypeError: Cannot read property 'call' of undefined”
- javascript - 指定 vuetify 网格的宽度
- javascript - 我有一个需要重组为所需格式的对象数组。我尝试使用迭代使用数组解构
- c# - 为什么 Serilog 在达到文件大小限制之前滚动文件?
- c++ - QuickFix C++:编译 Acceptor 时出错
- docker - 使用 Docker 容器托管非营利应用程序
- sql - 如果条目被多次完成,则需要在每种情况下获取第二条记录