1. 什么是大端,什么是小端:
所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;
所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。
2.为什么会有大小端:
为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的cha...
分类:
其他好文 时间:
2014-07-10 23:14:54
阅读次数:
173
常见的80x86 CPU是先存放小值,再存放大值。这是小端字节(Little endian)序列。
而数字在互联网上传输的时候,是大端字节序列(Big endian)。所以,网络编程里有一个api是htons(),用来将主机字节顺序转化成为网络字节顺序。
常见的CPU平台如下:
处理器
操作系统
字节顺序
Alpha...
分类:
其他好文 时间:
2014-06-22 16:32:56
阅读次数:
228
走进WAVE文件
WAVE是录音时用的标准的Windows文件格式,文件的扩展名为“wav”,数据本身的格式为PCM或压缩型,属于无损音乐格式的一种,符合RIFF(Resource
Interchange File Format)规范。所有的WAV都有一个文件头,这个文件头音频流的编码参数。数据块的记录方式是小端(little-endian)字节顺序,标志符并不是字符串而是单独的符号
表1...
分类:
系统相关 时间:
2014-06-22 16:18:11
阅读次数:
326
问题
实现如下转换的最佳算法是什么?
0010 0000 => 0000 0100
具体的转换是从MSB->LSB到LSB->MSB, 所有的Bit都必须反转,那意味着,这并不是字节顺序的交换。
最佳答案
注意: 下面的算法都用C实现,但应该可以迁移到其它语言(只是不那么快的时候可别找我)。
可选方案
内存占用少(32位int,32位机器)(来源于这里)
unsigned int...
分类:
编程语言 时间:
2014-06-19 10:33:20
阅读次数:
290
在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这时就可能用到htons(), ntohl(),
ntohs(),htons()这4个网络字节顺序与本地字节顺序之间的转换函数:htonl()--"Host to Network Long int"
32Bytesntohl.....
分类:
其他好文 时间:
2014-06-11 09:58:25
阅读次数:
328
TLV是一种可变格式,意思就是:Type类型,
Lenght长度,Value值;Type和Length的长度固定,一般那是2、4个字节(这里统一采用4个字节);Value的长度有Length指定;编码方法:1.
将类型type用htonl转换为网络字节顺序,指针偏移+42. 将长度length用ht...
分类:
其他好文 时间:
2014-06-04 19:25:00
阅读次数:
376
用域名获取IP地址或者用IP获取域名
#include
#include
#include
int main(int argc,char **aggv)
{
struct hostent *host;
char hostname[]="www.163.com";
char hostname2[]="www.baidu.com";
s...
分类:
系统相关 时间:
2014-05-15 06:15:07
阅读次数:
406