字节序,比特序,位域
- 前言
- 引出疑惑
- 字节序
- 比特序
- 卡-比特的发送和接收顺序
-
- 大端序发送给小端序
- 小端序发送给大端序
- 位域
- 定义协议的万能公式
前言
??不总结出来睡不着觉啊md,本来想着1点就能写完,没想到3点才写完
??本专栏知识点是通过零声教育的线上课学习,进行梳理总结写下文章,对c/c++linux课程感兴趣的读者,可以点击链接 C/C++后台高级服务器课程介绍 详细查看课程的服务。
引出疑惑
字节序
??就比如上图的194,用大端读是194,用小端读是35,即从左往右看和从右往左看,值是不同的。做了测试之后发现,上面4个函数都没有对比特序做转换。而且写了这么久的代码了,也没见系统提供比特序转换的函数,这就很奇怪了。
??我小端接收大端的数据,大端的比特序和小端的顺序不一样,那读出来的字面值肯定不一样啊,咋明明没有对比特序做任何处理,程序安然无恙呢p>
??在我一开始接触字节序的时候我就在想会不会有比特序这种东西,会不会大小端是反的,不知道读者是否有过这种思考。
卡-比特的发送和接收顺序
??既然在程序中无感知,那么要么是内核,要么是 卡硬件帮我们处理了。比特的发送、接收顺序是指一个字节中的bit在 络电缆中是如何发送、接收的。在以太 (Ethernet)中,是的发送顺序,也就是。
??可以看出发送顺序其实是按照小端序的顺序来发送的。从图中我们可以发现,先发低位bit再发高位bit,这样
??牢记这句人能看懂的话:
小端序发送给大端序
??我们发现大小端序不同的话,abc对应的值也会不同
??举个例子,在websocket的第一个字节中,拿FIN举例,在大端序中它是最低地址0,在小端序中它是最高地址7。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!