当前位置: 首页 > news >正文

上线了 做商务网站/高级seo

上线了 做商务网站,高级seo,湖北建设局网站首页,java可以用来做网站吗原文网址:http://www.cnblogs.com/wuyuegb2312/archive/2013/06/08/3126510.html 或许你曾经仔细了解过什么是大端小端,也动手编写了测试手头上的机器上是大端还是小端的程序,甚至还编写了大端小端转换程序;但过了一段时间之后&a…

原文网址:http://www.cnblogs.com/wuyuegb2312/archive/2013/06/08/3126510.html

或许你曾经仔细了解过什么是大端小端,也动手编写了测试手头上的机器上是大端还是小端的程序,甚至还编写了大端小端转换程序;但过了一段时间之后,当你再看到大端和小端这两个字眼,你的脑中很快浮起了自己曾经做过的工作,却总是想不起究竟哪种是大端、哪种是小端,然后又去查以前写的记录?更让人不快的是,这种经历反反复复,让你十分困扰。如果你和以前的笔者一样,有过这种不快的经历,那么这篇文章希望能帮你彻底解决这个苦恼,让你彻底记住它们。 

  如果你在工作中经常使用到大端和小端以至于对它们十分熟悉,或者你的记忆力在保持时间的长度和精准度上都十分优秀,以至于不需要借助其他的方法,那么这篇文章不适合你。

  如果你在看这篇文章前完全不知道什么是大端和小端,那么可以参考本文的附录或者其他的博文,相关的介绍非常之多,而附录提供了一个很常见解释和一段测试程序,然后再来看正文。

  为了帮助记忆,理解是必要的;而记忆的目的,也就是为什么要记住它,是更重要的。或许你会问,先了解概念,用的时候再查,不行么?其实我之前也是这么认为的。大端和小端这两个名词,你会在很多有关网络编程、系统设计、甚至是代码写作的书上看到,而且它也是很多公司的笔试题、面试题热门内容,可见它在一些领域是很常用。如果等到你用的时候再查,一方面要降低你的工作效率,另一方面,应试的时候也不是你想查就能查的;其实最主要的是,在掌握规律后,记住它们并不困难。

  现在先来理解这对概念,大端和小端这两个令人迷惑的术语究竟是如何产生的?《程序设计实践》第9章中提到,“大端”和“小端”可以追溯到1726年的Jonathan Swift的《格列佛游记》,其中一篇讲到有两个国家因为吃鸡蛋究竟是先打破较大的一端还是先打破较小的一端而争执不休,甚至爆发了战争。1981年10月,Danny Cohen的文章《论圣战以及对和平的祈祷》(On holy wars and a plea for peace)将这一对词语引入了计算机界。这么看来,所谓大端和小端,也就是big-endian和little-endian,其实是从描述鸡蛋的部位而引申到计算机地址的描述,也可以说,是从一个俚语衍化来的计算机术语。稍有些英语常识的人都会知道,如果单靠字面意思来理解俚语,那是很难猜到它的正确含义的。在计算机里,对于地址的描述,很少用“大”和“小”来形容;对应地,用的更多的是“高”和“低”;很不幸地,这对术语直接按字面翻译过来就成了“大端”和“小端”,让人产生迷惑也不是很奇怪的事了。

  不过给我启发的是,在裘宗燕翻译的《程序设计实践》里,这对术语并没有翻译为“大端”和小端,而是“高尾端”“低尾端”,这就好理解了:如果把一个数看成一个字符串,比如11223344看成"11223344",末尾是个'\0','11'到'44'个占用一个存储单元,那么它的尾端很显然是44,前面的高还是低就表示尾端放在高地址还是低地址,它在内存中的放法非常直观,如下图:

  “高/低尾端”比“大/小端”更不容易让人迷惑。但是根据个人经验,在市面上的书籍、网络上的各种资料中,很遗憾,前者已经很少见了,多见的是后者。好在这两对形容词中,恰好“高”和“大”对应,“低”和“小”对应;既然高尾端对应的是大端,低尾端对应的是小端,那么当你再见到大端和小端这一对术语,就可以在脑中把它们转化成高尾端和低尾端,这时凭着之前的理解,甚至不用回忆,想着高低的字面含义就能回想起它们的含义。但是很奇怪的是,同样是裘宗燕翻译的《编程原本》(Elements of Programming),却把big-endian翻译成大尾格式(第一章)。

  理解之后,总结一下,记忆的方法是:

    (数据看成字符串)大端——高尾端,小端——低尾端

  稍一思索什么是“高”、什么是"低","尾端"又是什么,问题迎刃而解,再不用担心被“大端”和“小端”迷惑。用这种方式,是时候放弃原先的死记硬背和容易把自己绕进去而发生迷惑的理解了。

 

附录:什么是“大端”和“小端”及一段测试本机大端还是小端的代码

  (这段文字是《UNIX网络编程·卷一》的关于这个概念的概括;不仅限于这本书,很多计算机书籍都是这么介绍这个概念的,你会在和计算机相关不同领域的书中遇到它们。尽管很令人疑惑,但是在阅读正文前,你最好对这两个词语的概念有所理解。当然,如果你以前向正文中描述的一样接触过它们,那就不必读这一部分了。读完后你会发现,你虽然理解了含义,但很容易忘掉,这时你就可以看正文部分了)

  对于一个由2个字节组成的16位整数,在内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。

  

  在图中,顶部表明内存地址增长方向从右到左,在底部标明内存地址增长的方向为从左到右。并且还标明最高有效位(most significant bit,MSB)是这个16位值最左边一位,最低有效位(least significant bit, LSB)是这个16位值最右边一位。术语“小端”和“大端”表示多个字节值的哪一端(小端或大端)存储在该值的起始地址。

  这两种字节序没有标准可循,都有系统在使用。把某个给定系统所用的字节序称为主机字节序,可以用以下程序输出主机字节序。方法是在一个短整数变量中存放2字节的值0x0102,然后查看它的连续字节c[0](对应上图地址A)和c[1](对应上图地址A+1),以此确定字节序。

复制代码
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv)
{union {short s;char c[sizeof(short)];} un;un.s = 0x0102;if(sizeof(short)==2) {if(un.c[0]==1 && un.c[1] == 2)printf("big-endian\n");else if (un.c[0] == 2 && un.c[1] == 1)printf("little-endian\n");elseprintf("unknown\n");} elseprintf("sizeof(short)= %d\n",sizeof(short));exit(0);
}
http://www.lbrq.cn/news/1408573.html

相关文章:

  • 网站建设 制作/黑帽seo技术论坛
  • 仙游县建设局网站/关键词推广优化
  • 做二手钢结构网站/上海百度seo公司
  • 可以做婚礼鲜花布置的网站/怎么优化
  • 爱站攻略/想学销售去哪培训
  • 网站建设教程/搜索引擎有哪些
  • wordpress模板怎么修改页面内容/青岛seo外包服务
  • 柯桥区建设集团网站/网级移动营销app下载
  • 新闻网站建设汇报材料/seo在线工具
  • 广东专业做网站排名公司/社群营销的案例
  • 网站开发委托协议/广告推广语
  • 网页素材库/天津百度网站排名优化
  • 学校为什么要做网站/全网自媒体平台大全
  • 怎样做联盟网站/seo优化技巧
  • 网站优化排名的公司有哪些/企业qq怎么申请注册
  • 网站做描本好处/技术培训学校机构
  • 私募基金网站开发流程/茶叶网络推广方案
  • 免费的app开发工具/班级优化大师客服电话
  • 广州政府网站集约化建设/商家联盟营销方案
  • 沈阳大型网站制作公司/流量网站
  • 做网站如何防止被骗/济南专业做网站
  • 做网站要学会那些/关键词首页排名优化价格
  • 怎么用wordpress做网站/如何去推广一个app
  • html做游戏网站/qq营销软件
  • 学做面包的网站/yandex网站推广
  • 桐庐做网站/最近时事新闻热点事件
  • 手机端网站设计制作案例/关键词优化技巧有哪些
  • 石家庄做网站建设的公司排名/网络营销策划方案怎么写
  • 关于做网站/长沙做网站推广
  • 仿网站出售/电商线上推广渠道
  • day25|学习前端js
  • QNX 性能分析工具(hogs pidin tracelogger)
  • 【Linux指南】gcc/g++编译器:从源码到可执行文件的全流程解析
  • 学习Python中Selenium模块的基本用法(5:程序基本步骤)
  • B站 韩顺平 笔记 (Day 21)
  • 【LLM】文献阅读-ISOLATE GPT:基于大语言模型的执行隔离架构