什么是“偏移”?

[复制链接]
  • TA的每日心情
    奋斗
    2013-10-19 22:45
  • 签到天数: 6 天

    [LV.2]九品芝麻官

    18

    主题

    71

    回帖

    278

    积分

    [INTOHARD]排长

    Rank: 3Rank: 3

    积分
    278
    发表于 2011-4-7 13:59:30 | 显示全部楼层 |阅读模式
    不怕我各位高手笑话,小弟问个不是问题的问题
                                 经常听说偏移怎么怎么的,到底是个什么概念啊。谢谢啊!!!
  • TA的每日心情
    开心
    2020-3-6 16:05
  • 签到天数: 19 天

    [LV.4]七品知县

    31

    主题

    567

    回帖

    329

    积分

    [INTOHARD]排长

    Rank: 3Rank: 3

    积分
    329
    发表于 2011-4-7 21:34:40 | 显示全部楼层
    就是偏一点移一点位置
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    17

    回帖

    46

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    46
    发表于 2011-4-7 21:50:22 | 显示全部楼层
    看过WINHEX的一些资料,说道查找16进制数时,开始不明白为什么“偏移计算”后面的值一会是510=0,一会又是512=510。呵呵,别笑我有点笨哦,但之前我确实不知道,我不知道有没有和我一样的笨鸟。
    现在呢,把这个“为什么”放在这,算是给和我一样的笨鸟一点帮助。知识总会越积越多,对吧。
    不绕弯子了
    先举几个例子:如
    1、查找EB5290时,我们要设偏移计算为512=0
    2、查找55AA时候,我们要设偏移计算为512=510
    3、再补充一个1024=512
    注:等号前是我们要搜索分块大小,后面是从分块中起始搜索的位置。
    详细解释,1、我们知道EB5290(或EBFE90/EB3C90/EB5890)是DBR的头三个字节,而55AA是MBR,EBR或DBR的结束标志,也就是说,EB5290是在一个扇区中的第0、1、2个位,而55AA是在一个扇区的第510、511这最后两个字节的位置。
    我们知道,如果要在一个扇区中要找指定的字符(16进制),那么我们就要从头搜索到尾。如果说我们知道我们要搜索的字符在一个扇区的后半部分,那么我们就可以从一个扇区的中间位置开始向下搜索,这样就提高了搜索的速度。
    好了
    例1中:EB5290是在扇区的第0、1、2字节,那么我们只能以扇区为单位,从每个扇区的第一个字节搜索到最后一个字节。也就是 512=0 即:以512字节(一个扇区大小)为单位,从0位置开始搜。
    例2中:55AA在510,和511个字节上(注:扇区从0~511),所以我们可以以扇区为单位从510位置开始搜索。即512=510,我们对每个扇区只看它的最后两个字节。
       通过以上的分析来举一反三,我们要以两个扇区为单位从中间位置开始可设偏移计算条件为1024=512。
    我们要只搜扇区中的第123个字节(从0~512),看是不是AB(其实就成了判断)偏移计算条件为512=123。
    大胆一点,我们以100为单位,搜后面5个字节看是不是0011223344,偏移计算条件为100=95。
         哈...现在该明白偏移计算条件等式的意思了哦。


    不知道分区类型的时候查找DBR的EB3F90时偏移调制512=0要设置通用字符3F
    查找55AA的结束标志时偏移调制512=510
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表