网络字节序的问题,byte的8bit里面也有字节序问题? ( 积分: 300 )

  • 主题发起人 主题发起人 zealothasu
  • 开始时间 开始时间
Z

zealothasu

Unregistered / Unconfirmed
GUEST, unregistred user!
我知道网络字节序,也知道大头和小头的区别,我一直认为应该是在byte级别是这样有顺序区别的,但是这一段代码难道说明在bit里面也有字节序这一说吗?请熟悉的解释一下
以下这段是tcp的协议头部,th_x2:4, th_off:4;这两个4bit在不同的系统顺序不一样,为什么?难道一个byte也有顺序?
struct tcphdr
{
u_short th_sport;
u_short th_dport;
tcp_seq th_seq
tcp_seq th_ack
#if BYTE_ORDER == LITTLE_ENDIAN
u_char th_x2:4,
th_off:4;
#endif

#if BYTE_ORDER == BIG_ENDIAN
u_char th_off:4,
th_x2:4;
 
万一是4位的CPU呢,呵呵
 
是的,一个字节内部也是有顺序的。
也就是说,字节顺序是指bit位的顺序。
 
之前记得是说内存字节,是高位在前,还是低位在前。
所以那结构写成两个结构,这样保证系统移植的时候,不因系统变换而改变代码。
 
来自:MrMengyi, 时间:2007-8-10 11:54:47, ID:3821355
是的,一个字节内部也是有顺序的。
也就是说,字节顺序是指bit位的顺序。

那么shl, shr在不同的系统上面还不一样?

来自:errorcode, 时间:2007-8-10 19:25:25, ID:3821609
之前记得是说内存字节,是高位在前,还是低位在前。
所以那结构写成两个结构,这样保证系统移植的时候,不因系统变换而改变代码。

这个是指byte吧,不是bit

还希望有更合理的答案
 
后退
顶部