上里里子 2022-10-27 22:16 采纳率: 100%
浏览 57
已结题

水卡进制转化问题超出位数

各位好 我这边的水卡是不联网的也已经破解了
但是金额改动有点小问题 想请教一下
我们学校的水卡金额是10进制x100转换16进制然后前后调换顺序就行了 比如 100块就是10000转16
进制2710 然后把10和27换一下位置变成1027就OK了

现在的问题是假如我想改成700的话 16进制就是5位数了11170 已经超出了能填的最多数值怎么办

3位的话可以高位补0 但是5位的话应该怎么办 求解答

img

  • 写回答

1条回答 默认 最新

  • JarodYv 人工智能领域优质创作者 2022-10-31 16:52
    关注

    这是一个典型的高位在前还是低位在前的问题。你这里是低位在前。(数据内存中的存储是低位在前的,我们人类阅读的习惯是高位在前)

    从你的反馈来看,你的水卡应该是16位的,用2字节表示一个整数。因此系统支持的最大无符号数取值范围为2^16-1 = 65535 > 70000

    很遗憾,你的水卡系统一个无符号整形装不下70000。

    当然,我们可以将数据类型扩展为long类型,这样就是用4个字节表示一个整数,此时70000转为十六进制就是0x00011170,四个字节的切分为
    00 | 01 | 11 | 70
    交换高低位后就是
    70 | 11 | 01 | 00

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 已采纳回答 11月5日
  • 创建了问题 10月27日