各位好 我这边的水卡是不联网的也已经破解了
但是金额改动有点小问题 想请教一下
我们学校的水卡金额是10进制x100转换16进制然后前后调换顺序就行了 比如 100块就是10000转16
进制2710 然后把10和27换一下位置变成1027就OK了
现在的问题是假如我想改成700的话 16进制就是5位数了11170 已经超出了能填的最多数值怎么办
3位的话可以高位补0 但是5位的话应该怎么办 求解答
各位好 我这边的水卡是不联网的也已经破解了
但是金额改动有点小问题 想请教一下
我们学校的水卡金额是10进制x100转换16进制然后前后调换顺序就行了 比如 100块就是10000转16
进制2710 然后把10和27换一下位置变成1027就OK了
现在的问题是假如我想改成700的话 16进制就是5位数了11170 已经超出了能填的最多数值怎么办
3位的话可以高位补0 但是5位的话应该怎么办 求解答
这是一个典型的高位在前还是低位在前的问题。你这里是低位在前。(数据内存中的存储是低位在前的,我们人类阅读的习惯是高位在前)
从你的反馈来看,你的水卡应该是16位的,用2字节表示一个整数。因此系统支持的最大无符号数取值范围为2^16-1 = 65535 > 70000
很遗憾,你的水卡系统一个无符号整形装不下70000。
当然,我们可以将数据类型扩展为long类型,这样就是用4个字节表示一个整数,此时70000转为十六进制就是0x00011170,四个字节的切分为
00 | 01 | 11 | 70
交换高低位后就是
70 | 11 | 01 | 00