TaoTao 的个人资料TaoTao 学着舞文弄墨照片日志列表 工具 帮助
5月27日

又一个0:1

    足球是圆的。
    公司组织的足球联赛,已经三连败的情况下,又一次0:1输给了一支弱队。
    无语中......
    继续啃我的方便面......
 
   
5月21日

新的开始,会不会更好?!

我不想我不想不想长大
长大后世界就没有花
我不想我不想不想长大
我宁愿永远都笨又傻
我不想我不想不想长大
长大后我就会失去他
我深爱的他深爱我的他
怎么会爱上别个他
让我们回去从前好不好
天真愚蠢快乐美好
我不想我不想不想长大
长大后世界就没有花
我不想我不想不想长大
我宁愿永远都笨又傻
我不想我不想不想长大
长大后我就会失去他
我深爱的他深爱我的他
怎么会爱上别个他
 
 
    像SHE唱的一样,估计每个人都不想长大,当然原因未必如歌词中所列的那样。
    很不幸,昨天度过了我的28岁生日,生日是如何度过的我就不加详述了,因为这个话题很一般,根本无法吸引有品位的看客,也就是您。无非是和几个朋友胡吃海喝一回,找个借口happy一下,这种事情就是像我这样有品位的人也是未能免俗,我想你们也能理解。
    既然已经到了这个年龄,有些事情就不得不做了,这是一种客观的规律,客观规律是人所无法抗拒的,所以我顺应天命。比如说,今天上午,星期天,当我体会到睡眠已经充足,肚子已经填饱的时候,忽然就有了一种必须要上网看看的想法,一个很偶然的动作,打开了我尘封已久的MSN Space,也就是一种博客,据说是Web2.0的滥觞。看看上面的年龄还是27,于是我意识到必须改一下了,28就是28,不能骗人。而且,“Space 2005”这个名字让我很没有与时俱进的优越感,当然,如果改成“Space 2006”确实跟上了时代步伐,但是我的想象力,创造力之类重要的指标恐怕就会被大家低估了,所以,“学着舞文弄墨”,这个名字就跃然屏幕上了。
    舞文弄墨算是一件高雅的事情,而且必须是有的是时间,有的是闲情逸致才能常常来舞弄。闲情逸致我虽然不多,却也还勉强够用,时间这个东西就很不好说了,大家看看我的blog更新频率就知道了。
    再祝俺自己生日快乐!
 
5月13日

big endian和little endian

0、big endian和little endian
  big endian和little endian是CPU处理多字节数的不同方式。例如"汉"字的Unicode编码是6C49。那么写到文件里时,究竟是将6C写在前面,还是将49写在前面?如果将6C写在前面,就是big endian。还是将49写在前面,就是little endian。
  "endian"这个词出自《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。
 
另一个详细点的解释:
目前的存储器,多以byte为访问的最小单元,当一个逻辑上的整理必须分割为物理上的
若干单元时就存在了先放谁后放谁的问题,于是endian的问题应运而生了,对于不同的
存储方法,就有Big-endian和Little-endian两个描述.(这两个术语来自于 Jonathan
Swift 的《《格利佛游记》其中交战的两个派别无法就应该从哪一端--小端还是大
端--打开一个半熟的鸡蛋达成一致。在那个时代,Swift是在讽刺英国和法国之间
的持续冲突,Danny Cohen,一位网络协议的早期开创者,第一次使用这两个术语
来指代字节顺序,后来这个术语被广泛接纳了。)

存在“如果说"跟word或者说字长根本就没关系",假设有一数据文件里面有N多数顺
序排布,如果想以Little-Endian format 读入内存某区域,那么应该怎么读?怎么
排?”这样的问题是由于对于endian的实质理解的偏差,endian指的是当物理上的最
小单元比逻辑上的最小单元小时,逻辑到物理的单元排布关系。这里的“有一数据文
件里面有N多数顺序排布”,这个“有一数据”显然不是逻辑上的最小单元,而其中
的“N多数”的一个才是逻辑最小单元,于是可应用楼主表格中的原则排列,而“N多
数”之间的顺序则是由这“N多数”的宿主决定的,比如是你写的程序,这个顺序由你
决定

刚才谈到了,endian指的是当物理上的最小单元比逻辑上的最小单元小时,逻辑到
物理的单元排布关系。咱们接触到的物理单元最小都是byte,在通信领域中,这里
往往是bit,不过原理也是类似的。

实践可以给你更多的经验,比如在一个嵌入式系统的通信协议中,从底层射频驱动
到上层的协议栈全部需要实现,那么很可能遇到多个endian的问题,底层的bit序、
协议层的byte序、应用层的byte序,这些都是不同的概念

Big-Endian 和 Little-Endian 字节排序
字节排序 含义
Big-Endian 一个Word中的高位的Byte放在内存中这个Word区域的低地址处。
Little-Endian 一个Word中的低位的Byte放在内存中这个Word区域的低地址处。

必须注意的是:表中一个Word的长度是16位,一个Byte的长度是8位。如果一个数
超过一个Word的长度,必须先按Word分成若干部分,然后每一部分(即每个Word
内部)按Big-Endian或者Little-Endian的不同操作来处理字节。

一个例子:
如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为
big-endian little-endian
0x0000 0x12 0xcd
0x0001 0x34 0xab
0x0002 0xab 0x34
0x0003 0xcd 0x12

除了moto的68K系列和dec的sparc是big endian外,常见的cpu都是little
endian。ARM同时支持 big和little,实际应用中通常使用little endian。