如何将16进制的数据转换成数据asiic
如:6 9 4,转换后39 36 34再如怎么把他反转过来,如:44 41 43 转换后:3500

解决方案 »

  1.   

    inttohex 10转1616转10
    function HexToInt(const S: String): DWORD;
    asm
    PUSH EBX 
    PUSH ESIMOV ESI, EAX //字符串地址
    MOV EDX, [EAX-4] //读取字符串长度XOR EAX, EAX //初始化返回值 
    XOR ECX, ECX //临时变量TEST ESI, ESI //判断是否为空指针
    JZ @@2 
    TEST EDX, EDX //判断字符串是否为空
    JLE @@2 
    MOV BL, $20
    @@0: 
    MOV CL, [ESI]
    INC ESIOR CL, BL //如果有字母则被转换为小写字母
    SUB CL, '0'
    JB @@2 // < '0' 的字符
    CMP CL, $09
    JBE @@1 // '0'..'9' 的字符
    SUB CL, 'a'-'0'-10
    CMP CL, $0A
    JB @@2 // < 'a' 的字符
    CMP CL, $0F
    JA @@2 // > 'f' 的字符
    @@1: // '0'..'9', 'A'..'F', 'a'..'f'
    SHL EAX, 4
    OR EAX, ECX
    DEC EDX
    JNZ @@0
    JMP @@3 
    @@2: 
    XOR EAX, EAX // 非法16进制字符串 
    @@3:
    POP ESI
    POP EBX
    RET
    end;
      

  2.   

    另外16进制的字符转换成数据asiic

    ord()
      

  3.   

    ASCII码6,9,4 转换成16进制那也是 36,39,34 啊!为什么你上面位置不对呢/
    还有下面 16进制 44,41,43 转换成ASCII码怎么是3500呢?怎么转换的!不明白!请赐教!
      

  4.   

    44 41 43
    D   A  C
    16进DAC=十进3500
    hextoint