字节那些事儿

合集下载

组织架构大调整:字节跳动必须要变

组织架构大调整:字节跳动必须要变

组织架构大调整:字节跳动必须要变作者丨李唐编辑丨胡展嘉出品丨零态LT(ID:LingTai_LT)在张一鸣卸任半年后,字节跳动新任掌门人梁汝波烧出第一把火。

2021年11月2日,字节跳动CEO梁汝波发布内部信,宣布组织架构调整。

根据内部信,字节跳动调整后将分为六大业务板块:抖音、大力教育、飞书、火山引擎、游戏和TikT ok。

其中,最为重点的是,头条、西瓜、搜索、百科以及国内垂直服务业务并入抖音。

这意味着曾经辉煌一时的今日头条和一度被委以重任的西瓜视频,都将纳入抖音麾下。

同时,员工发展部门的技能与职业培训职能,转型为职业教育业务,并入大力教育板块。

职业教育将成为字节教育新的发力点。

此外,内部信还宣布,各个业务板块负责人将向梁汝波直接汇报。

这也意味着梁汝波正式接手字节跳动的全部业务。

同时,TikTok负责人周受资不再兼任字节跳动CFO,公司财务部向梁汝波汇报,这也意味着字节跳动将没有CFO。

由于CFO是一个公司操作上市流程的重要执行人,CFO空缺——也意味着,字节跳动可能短期内将取消上市计划。

一番结构调整后,字节跳动更像是一家大型科技公司,不再拘泥于一家内容生态公司。

总体来看,字节跳动在现阶段拿出六大板块的庞大架构,甚至不惜把今日头条降级合并,展现出的是互联网“准”巨头的野心,但眼下,无论是否上市,其都已经到了必须要改变的时候。

01这次调整中,最为重大的变革是抖音合并头条和西瓜等内容业务。

虽然在合并后,头条、搜索、西瓜依然直接向字节跳动中国的董事长和CEO张利东、张楠汇报,对整体业务架构没有太大影响。

但很明显,西瓜、头条在字节内部地位下降。

业内人士认为,这次调整后,也许会是字节跳动内容和商业化矩调整的开始。

此前,有媒体爆出今日头条在多地的商业化团队裁员。

这次整合进一步体现出字节跳动“流量为王”法则。

众所周知,字节跳动最初依靠今日头条起家,在业内拥有一席之地之地。

但近两年今日头条的用户增长放缓,面临增长瓶颈。

青年科技贡献的事例

青年科技贡献的事例
咱们大学里也有很多科技小达人呢。我有个学长,他就参与了一个关于智能农业的项目。他们研发的系统可以通过传感器实时监测土壤的湿度、肥力等数据,让农民伯伯能更科学地种植农作物。他说刚开始的时候,他连那些传感器的原理都搞不太清楚,天天抱着书和资料研究,还经常跑到田里去做测试,搞得一身泥。但是看到自己的项目一点点成型,最后真的能帮助到农民,他觉得特别有成就感。
还有那个埃隆·马斯克,虽然他是外国人,但也是青年才俊啊。特斯拉汽车改变了人们对电动汽车的看法,以前大家觉得电动汽车不靠谱,跑不远,充电还麻烦。马斯克就不信这个邪,带Байду номын сангаас他的团队搞研发。他的SpaceX公司更是牛,能把火箭回收再利用,这在以前可是想都不敢想的事儿。他就像一个超级英雄,不断挑战那些看似不可能的科技难题。
你看,这些青年在科技领域的贡献,就像星星之火,不断地推动着科技的发展,也让我们的生活变得越来越美好。他们的故事告诉我们,只要有梦想,肯努力,青年在科技领域就能创造无限可能。
青年科技贡献的事例
青年在科技领域的贡献那可真是多不胜数,我给你好好唠唠。
你知道大疆的汪滔吧,那可真是个科技小天才。大疆的无人机如今在全球那都是响当当的,汪滔从小就对航模有着疯狂的热爱。他可不是那种光有热情没脑子的人,他一头扎进无人机的研发里。最开始的时候,条件可艰苦了,他就在小工作室里捣鼓那些零件,像着了魔一样。经过无数次的失败,就像我们小时候搭积木搭了又倒倒了又搭一样,他可没放弃。现在大疆的无人机在航拍、农业、救援等好多领域都发挥着巨大的作用呢。
再说说国内的旷视科技的印奇他们吧。人脸识别技术现在到处都在用,旷视科技在这方面那是相当厉害。印奇和他的小伙伴们从大学开始就钻研这个技术,那时候他们可能也没想到这个技术会发展得这么快。现在无论是在机场安检、公司门禁还是手机解锁上,人脸识别技术都给我们带来了极大的便利。

独角兽企业的人力资源字节跳动的人力资源管理体系

独角兽企业的人力资源字节跳动的人力资源管理体系

独角兽企业的人力资源字节跳动的人力资源管理体系字节跳动是一家在人力资源管理方面表现出色的独角兽企业。

其人力资源管理体系以员工价值为核心,注重吸引、培养和激励人才。

本文将探讨字节跳动在招聘、培训发展、绩效管理、薪酬激励和员工关系等方面的人力资源管理实践。

招聘是人力资源管理的第一步,也是保证企业人才优势的重要环节。

字节跳动通过多样化的招聘渠道,吸引了大量优秀的人才。

除了传统的招聘渠道,如招聘网站和校园招聘,字节跳动还鼓励员工推荐人才,并提供丰厚的奖励。

这种内部推荐制度有助于利用员工的社交网络,找到更匹配的人才资源。

一旦员工加入字节跳动,他们会有全面的培训发展机会。

字节跳动提供多种培训渠道,包括内部培训、外部培训和员工交流项目。

这些培训计划帮助员工不断提升技能,拓宽视野,并且应对企业发展的需求变化。

此外,字节跳动还鼓励员工参与项目,提升团队合作和领导能力。

绩效管理是实现企业目标和员工发展的重要工具。

字节跳动通过制定明确的目标和指标,评估员工的工作表现。

公司采用KPI(关键绩效指标)评估系统,为员工设定具体目标,并根据实际绩效给予奖励或调整薪资。

此外,字节跳动还注重提供反馈和指导,鼓励员工在工作中不断成长。

薪酬激励是吸引和激励人才的重要手段。

字节跳动采用竞争激励和差异化薪酬制度,根据员工的贡献和表现给予相应的薪酬。

此外,字节跳动还提供股权激励计划,使员工可以分享公司发展的成果。

这种激励机制激发了员工的积极性和创造力,促进了企业的快速发展。

员工关系是保持企业稳定和凝聚力的重要方面。

字节跳动致力于在企业内部营造一个和谐、开放和共赢的工作环境。

公司鼓励员工进行多元化的文化交流,举办各种团队活动和聚会。

此外,字节跳动还注重员工的参与和沟通,定期进行员工满意度调查,以改进员工关系和解决问题。

总之,字节跳动以员工为核心,注重招聘、培训发展、绩效管理、薪酬激励和员工关系等方面的人力资源管理。

其成功的人力资源管理实践为企业的高速发展提供了有力支撑。

字节跳动引领时代

字节跳动引领时代
-
1 全球化战略:拓展国际市场
2 社会责任:推动可持续发展
3 未来展望:持续创新引领未来 4 企业文化:激发员工创造力
5 跨界合作:打造共赢生态圈
6 应对挑战:积极应对市场变化
7 投资与孵化:培育创新生态
8 社会责任:推动技术普惠
9 结语:时代的领跑者
字节跳动引领时代
字节跳动,一个在科技行业掀起巨大波澜的公司,正以 其独特的商业模式和创新能力引领着时代的发展
字节跳动引领时代
投资与孵化:培育创新生态
字节跳动不仅在自身业务上不断创新,还通 过投资和孵化器计划,积极培育外部的创新 生态。公司投资于各行各业的初创企业,从 人工智能到内容创作,从电商到企业服务。 这些投资不仅为公司带来了财务回报,更为 重要的是,它们为字节跳动带来了新的创新 思路和合作伙伴,进一步丰富了公司的业务 生态
字节跳动积极开展跨界合作,与 各行各业的合作伙伴共同打造共 赢生态圈。通过与内容创作者、 品牌商家、技术供应商等合作伙 伴的深度合作,字节跳动不断拓 展业务领域,为用户提供更加丰 富和优质的服务。这种合作模式 不仅提高了公司的竞争力,也为 整个生态圈的发展带来了更多机 会和价值
字节跳动引领时代
应对挑战:积极应对市场变化
在快速发展的同时,字节跳动也面临着各种挑战和风险。例如,随着监管政策的收紧 ,公司需要不断调整业务模式以适应市场变化。此外,随着竞争对手的增多和用户需 求的多样化,字节跳动需要不断创新以保持领先地位。为了应对这些挑战,字节跳动 采取了灵活的市场策略和积极的调整措施,确保公司始终保持竞争优势
总结
字节跳动凭借其技术创新、全球化战略、生态建设、社会责任、未来展望、企业文化、跨 界合作和应对挑战等方面的优势,引领着时代的发展。作为一家充满活力和创新精神的企 业,字节跳动将继续发挥其领导力,为全球用户带来更多惊喜和价值。同时,我们也期待 字节跳动在未来能够继续保持创新和领先地位,为整个科技行业的发展做出更大的贡献

字节跳动:从0到1的秘密

字节跳动:从0到1的秘密

精彩摘录
精彩摘录
张一鸣认为愤怒是一种无用的情绪,是一种精神上的懒惰。相反,他努力追求一种“介于轻度喜悦和轻度抑 郁之间”的理想状态。
“有耐心,能独处,并基于长期思考做判断,而且不为短期因素所干扰,耐心地等待你设想和努力的事情逐 步发生,这对创业来说是非常重要的事情。”他很肯定地说。
用史蒂夫·乔布斯的话来说就是:“你不可能在展望未来的时候把点点滴滴串联起来,你只能在回顾时将它 们联系起来。”
读书笔记
读书笔记
第一家被世界认可的中国互联网公司,有过人的智慧,非凡的魄力和胆识,也有时代的造就。 公司10周年了。羡慕wm老师。 计算机视频识别,人工智能标记分类是推荐算法的核心。当然,作为技术人的你如果也看好某项技术,是否 有勇气去朝这个方向做一些投资呢?时机稍纵即逝,如果抓住了某个天使投资机会,也许你就是下一个“海纳亚 洲”。 看了几页就看不下去了。 字节真是移动的巨人…想到几年前矮大紧就在写的阿里传现在已经土埋了,而字节的前世今生已经铺天盖地, 无论是企业增长还是立传都是迅雷不及掩耳的速度。 这本书信息量挺全的,时间线也理得很清楚,虽然没有采访过一个字节跳动的员工,但是数据都是很准确的, 作为市面上唯一讲这个生态和这家公司的一本书,推荐大家感兴趣的人去读。 没有太多深入的研究,但对于了解字节跳动的历史挺有帮助的,读起来也轻松快速。 张一鸣这个名字起的就很好呀不鸣则已,一鸣惊人…眼光长远,执行力强,成功者必备。
培育一个健康的创作者生态系统需要做三件事。首先,用户需要转变成创作者。其次,创作者要能找到受众 并吸引粉丝。最后,他们必须有办法直接或间接地赚到钱。
史蒂夫·乔布斯的一句名言:“光有技术是不够的。技术只有与人文相结合,才会带来让我们心灵歌唱的结 果。”
经过了筛选过程,该视频就会被发布给一小群活跃用户,数量约有几百人。完整观看数、**数、评论数、平 均播放长度和分享等指标将被分析,以衡量该视频在其垂直类别中的受欢迎程度。表现良好的视频将进入下一阶 段,在那里被展示给成千上万的活跃用户。同样地,更多的指标将被评估,表现最好的视频将来到下一个阶段, 在那里将获得更多的观众。随着视频进入的阶段越来越高,其可以接触数百万用户。

字节跳动技术leader数字化研发管理案例

字节跳动技术leader数字化研发管理案例

标题:字节跳动技术leader数字化研发管理案例一、背景介绍字节跳动作为一家新型的互联网科技公司,成立不久就迅速崛起,成为了互联网行业的佼佼者。

在这样一个快速发展的企业中,数字化研发管理变得尤为重要。

本文将以字节跳动的技术leader为案例,探讨其在数字化研发管理方面的实践与经验。

二、数字化研发管理的挑战1. 资源分配问题在一个快速发展的企业中,资源分配往往成为数字化研发管理的难题。

如何合理地规划资源,确保各个项目都能得到充分支持,是一个值得思考的问题。

2. 团队协作与交流在研发过程中,团队协作和交流是至关重要的。

尤其在一个大型企业中,团队之间的协作需要更多的协调和交流,这对数字化研发管理提出了更高的要求。

3. 技术革新与变革互联网科技行业日新月异,技术的革新与变革是常态。

在数字化研发管理中,如何及时应对技术的变革、确保团队的技术更新,是一个常常需要思考的问题。

三、数字化研发管理的解决方案1. 资源分配问题的解决在字节跳动,技术leader采取了一系列措施来解决资源分配问题。

他们建立了一套完善的项目管理体系,通过数据分析和评估,合理规划资源的分配。

他们鼓励团队间的协作与共享,以更好地利用资源。

他们实行了灵活的资源调配机制,根据项目的实际情况及时调整资源的分配,确保各个项目都能得到支持。

2. 团队协作与交流的优化在团队协作与交流方面,技术leader注重团队文化的建设。

他们建立了开放、包容的团队文化,鼓励团队成员之间的交流与共享。

他们还推行了一些协作工具,如团队协作软件、会议工具等,帮助团队更好地协作与交流。

3. 技术革新与变革的及时应对对于技术革新与变革,技术leader采取了一些措施来应对。

他们建立了一个专门负责技术研发的团队,负责跟踪新技术的发展,确保团队的技术更新。

他们积极参与行业内的技术交流与合作,保持对行业最新动态的了解。

他们还制定了一些技术发展的规划和策略,确保团队能够及时跟上技术的变革。

字节跳动快速成长的驱动力-04-暗业务

字节跳动快速成长的驱动力-04-暗业务

字节跳动的快速成长的驱动力-04-暗业务【暗业务】字节跳动内部使用的一款软件叫飞书,英文叫Lark,它的意思是百灵鸟、云雀,还有一个意思就是玩游戏。

这是一款管理软件,虽然它看上去不太像管理,而是带有一定的游戏色彩。

当然,这个软件最大的特点是,它的沟通和协同的效率非常高。

举一个例子。

在疫情期间有一个新闻:抖音、头条、西瓜宣布请全国人民免费看一部电影《囧妈》,当时还引起热议。

对于公司来说这是一件大事。

但是你猜,一个临时组织起来的团队,从做决定、联系影业公司老板徐峥、谈判价格、签约,到产品的专题页研发,在线压力测试,一直到最后电影的上线,一共花了多长时间?36个小时,也就是一天半的时间。

CEO张楠与徐峥甚至没有见过面。

从这个侧面看,它确实是一款很有效的管理软件。

飞书在2017年7月的时候,1.0上线,三个月以后,在字节内部推广使用。

不到两年,2019年的6月,它就变成了一款产品,携带着字节跳动的基因,市场的增长速度很快。

这就跟我今天要分享的另一个概念有关了,那就是暗业务。

1. 暗能力你可能是第一次听说这个词。

自然界里头除了物质以外,有暗物质;除了能量以外,有暗能量;除了信息以外,还有暗信息。

自然界就这三样东西,这三样显性的东西的下面还有你看不见的,但是确实是在起作用的东西。

作为一个人,作为一个组织,他(它)的能力和资源都可以再细分为暗能力和暗资源。

能力可以分成显性能力和暗能力,资源也可以分成显性资源和暗资源。

什么意思呢?就是如果你是认真地想把一个事情做到极致的话,它要求的能力和资源实际上是远超乎你自己的想象的。

有一个说法叫波拉尼悖论,就是说我们知道的永远多于我们知道自己知道的,我们会的要大于我们知道我们会的。

举一个极端的例子,我们今天都在使用互联网,你有没有想过这是谁发明的?好像1969年美国的国防部就发明了这种东西。

实际上那个东西用处不大,它只是把各个局域网连接起来,最大的功能基本上就是发电子邮件,它没办法浏览网页,没办法迅速地从一个局域网切换到另外一个局域网,从一个站点切换到另外一个站点。

字节跳动企业文化

字节跳动企业文化

字节跳动企业文化
1. 字节跳动的使命和愿景
字节跳动是一家以科技驱动创新的企业,致力于为用户提供优质的内容和服务。

公司的使命是连接信息,让世界更美好。

字节跳动的愿景是通过技术创新,实现
信息智能化,为全球用户提供更有趣、更有价值的体验。

2. 价值观
在字节跳动,我们秉持着“用户第一,技术领先,创新奋斗,诚信合作”的核心
价值观。

我们始终以用户需求为先,不断提升技术创新能力,持续创造更优质的产品和服务,同时强调团队之间的诚信合作,共同成长。

3. 文化氛围
字节跳动的企业文化注重开放、包容和创新。

公司提倡平等、尊重和分享,鼓
励员工大胆尝试,勇于创新。

在字节跳动,每个人都有机会发挥自己的才能,实现个人价值,同时也肩负着对社会的责任。

4. 团队建设
字节跳动重视团队建设,通过多样化的培训和活动,促进员工之间的合作和沟通。

公司提供良好的职业发展机会和晋升通道,激励员工不断进步。

在字节跳动,每个人都是团队的重要组成部分,团结协作共同前行。

5. 社会责任
字节跳动积极履行社会责任,关注环境保护、公益慈善等领域。

公司倡导绿色
环保理念,呼吁员工关心社会问题,参与公益活动。

字节跳动希望通过自身的努力,为社会做出积极贡献,实现可持续发展。

6. 结语
字节跳动是一家充满活力和创造力的企业,我们以用户为中心,不断追求创新
和进步。

在字节跳动,每个人都可以找到自己的位置,发挥自己的价值,共同创造更美好的未来。

愿我们在追求卓越的道路上不断努力,让字节跳动的企业文化闪耀更远。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/dandycheung/archive/2010/09/13/5881620.aspx1、前言作为一名C/C++ 程序员,字节是我们天天都要与之打交道的一个东西。

我们和它熟稔到几乎已经忘记了它的存在。

可是,它自己是不甘寂寞的,或迟或早地,总会在某些时候探出头来张望,然后给你一个腿儿绊。

其实,只要你真正了解了它的底细,你就会畅行无阻。

在本文中,我们将首先简要了解一下字节的概念,然后着重了解一下字节序问题和字节对齐问题。

注:笔者已经尽最大努力保证本文信息的正确性,但确实无法提供百分之百的担保。

2、什么是字节我们知道,二进制计算机(也就是我们目前接触到的几乎所有的计算机)的最小数据单位是位(bit )。

一位数据只能够表示两种含义(需要说明,尽管我们通常把单个位表示的两种含义选择为相互对立的含义,但这并不是必然的,例如你可以认为 1 代表 5 个人,0 代表8 个人),对于绝大多数的计算要求,单个位显然不能满足。

因此,我们通常都会使用一连串的位,我们可以称之为位串(bit string ,请爱好质疑的的朋友注意,此术语非我杜撰)。

由于种种原因,计算机系统都不会让你使用任意长度的位串,而是使用某个特定长度的位串。

一些常见的位串长度形式具有约定好的名称,如,半字节(nibble ,貌似用的不多)代表四个位的组合,字节(byte ,主角出场!)代表8 个位的组合。

再多的还有,字(word )、双字(Double word ,通常简写为Dword )、四字(Quad word ,经常简写为Qword )、十字节(Ten byte ,也简写为Tbyte )。

在这些里面,字(word )有时表示不同的含义。

在Intel 体系里,word 表示一个16 位的数值,它是固定大小的。

而在另外一些场合,word 表示了CPU 一次可处理的数据的位数,表示一个符合CPU 字长(word-length )的数目的位串。

事实上我们接触较多的ARM 体系中,word 就有不同的含义,它表示一个32 位的数据(与机器字长相同),对于16 位大小的数据,ARM 使用了另外的一个术语,叫作半字(half-word ),请大家在文档阅读时加以注意。

另外,Qword 也是Intel 体系中的术语,其他的体系中可能并不使用。

在本文中,我们按照Intel 的惯例来使用字或者word 这一术语。

一个字节中共有8 个数据位,有时需要用图表逐位表述各个位。

习惯上,我们按照下面的图来排列各个位的顺序,即,按照从右到左的顺序,依次为最低位(从第0 位开始)到最高位(对于字节,则是第7 位):字节是大多数现代计算机的最小存储单元,但这并不代表它是计算机可以最高效地处理的数据单位。

一般的来说,计算机可以最高效地处理的数据大小,应该与其字长相同。

在目前来讲,桌面平台的处理器字长正处于从32 位向64 位过渡的时期,嵌入式设备的基本稳定在32 位,而在某些专业领域(如高端显卡),处理器字长早已经达到了64 位乃至更多的128 位。

3、字节序问题的由来对于字、双字这些多于一个字节的数据,如果把它们放置到内存中的某个位置上,可以看出,我们还可以将之看作是字节的序列。

一个字是两个字节,双字则是四个字节。

假设有以下数据:0x12345678 、0x9abcdef0 。

在此处,我使用了我们最习惯的十六进制表示法,并给出了两个双字的值。

按照惯例,我把双字的左侧视为高端,而把右侧视为低端。

把它们顺序放置在起始地址为0 的内存中,如下图所示:由图示可知,0x9abcdef 的相应地址为0x04 。

现在,问题来了,如果有一个内存操作,要从地址0x06 处读取一个字,得到的结果是多少呢?答案是:不一定。

这里的本质问题在于,如何把多字节的对象存储到内存中去呢?即使使用最正常的思维去考虑这个问题,你也会发现有两种方法。

第一种方法是,把最低端的字节放到指定的起始位置(即基地址处),然后按照从低到高的字节顺序把其余字节依次放入,如下图a ;另一种方法非常类似,但是对高端字节和低端字节的处理顺序正好相反,如下图b (我确信你还可以想出其他的方法,但是除二字节的情况外,必然会打破字节排列顺序的一致性,我视之为反常规思维的产物,此处暂不考虑)。

图a图b在很久之前,哪一种存储方式更为合理曾经有过争论。

到今天,争论的结果已经无关紧要了,紧要的是以下事实:这两种存储方式都被应用到了现实的计算机系统中。

上图 a 中的排列方式为Intel 所采用并大行其道,而图 b 的排列方式则被大多数的其他平台采用(如最近被苹果公司彻底抛弃的PowerPC ),因此上,我们不能称之为罕见的用法。

之所以造成事实上的不经常见到,其原因正如我今天中午所得到的消息:Intel 的CPU 占整个市场份额的80% 以上。

这两种排列方式通常用小端(little endian )和大端(big endian )来称谓。

这两个奇怪的名字据说来源于童话《格列佛游记》,其中小人国里的公民为了鸡蛋到底是应该从小的一头打开还是大的一头打开而大起争执。

Intel 的方式对应于“小端”,顺便说一句,大端的方式也有一个大公司的名字作为其代表,即最近开始没落的Motorola 。

如果有谁了解过TIFF 图像文件格式,就会发现其文件头中用以标识文件数据字节序的标志就是“II ”和“MM ”,分别对应于Intel 和Motorola 的首字母。

值得提醒一下,小端方式的排列与位的排列顺序相一致,看上去似乎更协调一些。

现在我们可以回答上面的问题了。

对于小端字节序,我们取到的字,其值为0x9abc ,而如果是大端字节序的话,就会取到0xdef0 。

4、何时会出现字节序问题字节序问题主要出现在数据在不同平台之间进行交换时,交换的途径可能是网络传输,也可能是文件复制。

例如,如果你设计了一种可能会应用于不同平台的文件格式,其中存储了某些数据结构,则对于大小大于一个字节的数据就要明确地规定其遵循的字节序,以便各平台上的处理程序可以在使用数据时实现做必要的转换。

举一个实际的例子。

Java 是一个跨平台的编程语言,其可执行文件(扩展名为.class ,使用的是一种机器无关的字节码指令集)在理论上可以运行于所有的实现了Java 运行时的平台(包含有与特定平台相关特性的除外)。

编译后的.class 中一定保存有诸如Integer 这样类型的数据,这就涉及到了字节序的确定,否则.class 必然不能被采用了不同字节序的平台同时正确加载并运行。

事实上,Java 语言采用的为大端字节序,这个一点都不奇怪,因为当初SUN 公司自己的SPARC 架构就是采用的大端字节序。

同样的问题和解决问题的方式,也存在于操作系统新贵android 系统上。

网络传输则是另一个典型场景。

TCP/IP 所采用的网络传输字节序标准也是大端字节序,这个也不必奇怪,因为TCP/IP 是从UNIX 系统发展起来的,而绝大部分的UNIX 系统在很长的一段时间内都没有运行于Intel 体系架构上的版本。

处理字节序问题的手段非常简单,也就是对数据进行必要的转换:将十六进制的数字从两端开始交换,直至移动到数据的中心,交换完成为止。

交换的结果就好像物体与镜面之内的成像互换了位置,因此也被称为镜像交换(mirror-image swap )。

请参看下图:5、如何在程序中判断字节序在实际的工作中,有时需要对字节序进行判断,然后予以不同的处理。

一般的来说,编译后的程序通常只能运行在特定的平台之上,其所采用的字节序方式在编译时即可确定,在这种情况下,程序源代码中通常是把字节序的判别作为条件编译的判断语句,而不会判断代码放在真正的可执行代码中。

在这里,需要使用我们的老朋友——宏。

以下是一个真实的跨平台工程中代码,清晰起见,我稍做了修改:#define SGE_LITTLE_ENDIAN 1234#define SGE_BIG_ENDIAN 4321#ifndef SGE_BYTEORDER#if defined(__hppa__) || \defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \(defined(__MIPS__) && defined(__MISPEB__)) || \defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \defined(__sparc__)#define SGE_BYTEORDER SGE_BIG_ENDIAN#else#define SGE_BYTEORDER SGE_LITTLE_ENDIAN#endif#endif以上为根据平台的预定义宏所作的前期工作,将之存入一个头文件中,然后包含到源代码文件中使用。

在需要进行判断的时候,则像以下代码这样使用:#if SGE_BYTEORDER == SGE_BIG_ENDIAN#define SwapWordLe(w) SwapWord(w)#else#define SwapWordLe(w) (w)#endif由于这两个宏实际上被定义成了常量数值,因此也可以被用到可执行代码中,进行执行期的动态判断:if(SGE_BYTEORDER == SGE_BIG_ENDIAN)return r << 16 | g << 8 | b;elsereturn r | g << 8 | b << 16;追根寻源,上面的这种判断需要依赖编译器及其所在平台的预定义宏。

下面介绍一种执行期动态判断的方法,则不需要有宏的参与,而是巧妙地利用了字节序的本质。

代码如下:int IsLittleEndian(){const static union{unsigned int i;unsigned char c[4];} u = { 0x00000001 };return u.c[0];}动手画一下内存布局即可了解其原理。

还有更简练的写法,作为练习,请大家自行去寻找。

在结束对字节序的讨论之前,特别提醒一下,ARM 体系的CPU 在字节序上与Intel 的体系结构是一致的。

6、字节对齐问题的产生冯诺依曼体系的计算机,通过地址总线来寻址内存(假设n 为地址总线的位数,则最多可以寻址2n 个内存位置)。

根据地址总线的位数,我们可以知道CPU 与内存的一次交互(也即一次内存访问)能够读写的数据的大小。

显然地,对于8 位的CPU ,是一个字节,对于16 位CPU 则是一个字,32 位CPU 则是一个双字,依此类推。

这是CPU 与生俱来的最本质、最快捷的访问方式。

相关文档
最新文档