例如:
E324A 转ascii后为什么有10位的长度0123456789 转Hex后为什么有5位的长度

解决方案 »

  1.   

    楼主必须首先要建立16进制数与ascii码的概念:
    16进制数:是一个实际的数,与表达方式无关。例如:16进制数E324A (一般写为0xE324A)
    它的10 进制数  为930378  。可以认为它就表示一定的数量而与表达方式无关。无论是 16进制还是10 进制,都表示那么多数量。
    ascii:在这里是用来表示这个数量的,可以理解为是一种文本方式。实际上ascii与16进制数理论上没有任何关系,就象10这个数与‘10’这个字符串本身没有关系一样。
    每个字符在用ascii表示的时候都用1字节表示(2位长度)。例如:16进制数0x11 在转换为ascii时,在内存中映射了两个字节 0x31(ascii的'1')0x31 所以0xE324A 共5字节的16进制数在转换为ascii后为5*2=10字节 即你所说的10位