十六进制计算:C反汇编器用1C减7
Hexadecimal calculation: 1C minus 7 for C disassembler
我的问题很简单,没有代码,只是一个计算。为什么 1C 减 7 等于 22 以 10 为基数,一个 22 字节的数组?
我正在开发 C 反汇编程序,我想对变量进行分组。所以最初我们有:
那将变成一个单一的变量:
我用十六进制计算的结果是15,我很困惑。
显示屏会显示每个项目的起始位置。
在第一个显示中:
var_1C
从偏移 −1C 开始;它占据位置 −1C、−1B、−1C 和 −1A。
var_18
从偏移量 −18 开始;它占据位置 −18 和 −17.
var_16
从偏移量 −16 开始;它占据位置−16.
var_15
从偏移量 −15 开始;它占据位置 −15、−14、−13 和 −12。
var_11
从偏移量 −11 开始;它占据位置 −11、−10、−F 和 −E。
var_D
从偏移量 −D 开始;它占据位置-D、-C、-B 和-A。
var_9
从偏移量 −9 开始;它占据位置-9和-8。
var_7
从偏移量 −7 开始;它占据位置-7.
计算上面占用的字节数是22个字节。它们是从 −1C 到 −7 的字节,包括在内。
在第二个显示中:
var_1C
从偏移 −1C 开始;它占据-1C到-7的位置。
这也是22字节
概括 Eric Postpischil 的回答,
For all Real numbers, the number of integers in the interval [n, m] is
|(m - n)| + 1
方括号表示闭(含)区间。
我的问题很简单,没有代码,只是一个计算。为什么 1C 减 7 等于 22 以 10 为基数,一个 22 字节的数组?
我正在开发 C 反汇编程序,我想对变量进行分组。所以最初我们有:
那将变成一个单一的变量:
我用十六进制计算的结果是15,我很困惑。
显示屏会显示每个项目的起始位置。
在第一个显示中:
var_1C
从偏移 −1C 开始;它占据位置 −1C、−1B、−1C 和 −1A。var_18
从偏移量 −18 开始;它占据位置 −18 和 −17.var_16
从偏移量 −16 开始;它占据位置−16.var_15
从偏移量 −15 开始;它占据位置 −15、−14、−13 和 −12。var_11
从偏移量 −11 开始;它占据位置 −11、−10、−F 和 −E。var_D
从偏移量 −D 开始;它占据位置-D、-C、-B 和-A。var_9
从偏移量 −9 开始;它占据位置-9和-8。var_7
从偏移量 −7 开始;它占据位置-7.
计算上面占用的字节数是22个字节。它们是从 −1C 到 −7 的字节,包括在内。
在第二个显示中:
var_1C
从偏移 −1C 开始;它占据-1C到-7的位置。
这也是22字节
概括 Eric Postpischil 的回答,
For all Real numbers, the number of integers in the interval [n, m] is |(m - n)| + 1
方括号表示闭(含)区间。