首先,1.我说的低位指的是0xFFFF的后两位;高位是前两位
2.short的解析方式:short 在解析某内存对应的地址时,把高地址先解析出来写在高位,在把低地址解析出来写到低位。
本机字节序:当short是本机字节序时,低位存在低地址里面,高位存在高地址里面,假设short是80(80端口),则低位0x50存在低地址,高位0x00存在高地址。所以说,由2可知解析出来是0x0050;如果此时把short的地址赋给char 那么char是0x50,(char+1)是0x00
网络字节序:当内存里面是网络字节序时,低位存在高地址,高位存在低地址,假设short对应的内存现在是80(80端口)经过htons()转化成了网络字节序,那么低位0x50存在高地址,高位0x00存在低地址,根据2可知解析出来时0x5000,此时把short的地址赋给char,那么char是0x00,(char+1)=0x50