原帖:http://www.cnblogs.com/darktime/p/3298075.html不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起...
分类:
编程语言 时间:
2014-08-23 16:40:21
阅读次数:
291
在C语言中除了8位的char型之外,还有16位的short型,32位的long型(要看具体的编译器),对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着如何将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。大端模式:字数据的高字节存储...
分类:
其他好文 时间:
2014-08-23 12:31:40
阅读次数:
479
Big Endian是大端,Litter Endian是小端,意思很明了,但是很难记住谁是谁.每次涉及到这个概念的时候,我都会GOOGLE一下,浪费精力。怎样才能永远记住他们呢?网上搜索了一下,有很多人都存在这样的困惑,有人提出了一个比较好记的方法:Big Endian和Litter Endian被...
分类:
其他好文 时间:
2014-08-22 16:00:08
阅读次数:
191
一、最简单的做法:参考(深入理解计算机系统中文版第二版,P28,show_bytes)转化成usigned char*的byte_pointer;然后遍历输出每个字节的值,即可判断。输入可以是任意一个数。类似于:http://blog.csdn.net/yuucyf/article/details/...
分类:
其他好文 时间:
2014-08-20 20:58:22
阅读次数:
209
何为大端序,小端序?简单点说,就是字节的存储顺序,如果数据都是单字节的,那怎么存储无所谓了,但是对于多字节数据,比如int,double等,就要考虑存储的顺序 了。注意字节序是硬件层面的东西,对于软件来说通常是透明的。再说白一点,字节序通常只和你使用的处理器架构有关,而和编程语言无关,比如常见的 I...
分类:
其他好文 时间:
2014-08-17 14:12:12
阅读次数:
258
网络数据包的封包与拆包
过程如下:
将数据从一台计算机通过一定的路径发送到另一台计算机。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示:
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据包(packet),在链路层叫做帧(frame)。数据封装成帧后发到传输介质...
分类:
系统相关 时间:
2014-08-17 11:47:12
阅读次数:
560
http://bbs.chinaunix.net/thread-1257205-1-1.html#include #include #include int main(void){ unsigned short v = 0x0102; unsigned char *p = (unsigned c.....
分类:
编程语言 时间:
2014-08-14 14:00:08
阅读次数:
236
在写网络程序的时候,我们经常需要将结构体或者整数等数据类型序列化成二进制的buffer串。或者从一个buffer中解析出来一个结构体出来,最典型的就是在协议的header部分表征headlength或者bodylength在拼包和拆包的过程中,需要按照规定的整数类型进行解析,且涉及到大小端序的..
分类:
其他好文 时间:
2014-08-13 03:49:35
阅读次数:
10299
一、首先需要明白一点,术语“大端”和“小端”表示多个字节的哪一端(大端或小端)存储在该值的起始地址;小端:将低序字节存储在起始地址;大端:将高序字节存储在起始地址;对于一个16位的整数,内存中的存储方式如下图所示:但遗憾的是,二者并没有标准可循,两种格式都有系统在使用,下面程序可以判断主机字节序: ...
分类:
其他好文 时间:
2014-08-11 17:17:22
阅读次数:
228
一、FAT1起始扇区 = DBR的扇区号 + 保留扇区号
1.获取DBR的扇区号
磁盘的0号扇区的 0X1C6~0X1C9是第一个分区的起始扇区,这个扇区就是DBR
下图是本人的磁盘的0号扇区,可以看到DBR的扇区号是0X00 00 00 3F(小端格式)
2.得到保留扇区
打开DBR扇区,偏移0X0E~0X0F表示保留扇区
由图可知保留扇区数为0X00 26.
F...
分类:
其他好文 时间:
2014-08-08 18:20:37
阅读次数:
405