“魔数“是怎样工作的?

"魔数"是怎样工作的?

我们经常需要检查某个文件/某块磁盘是否符合我们需要的格式。一般会按照这个文件的完整格式,进行一次全面的分析。

在一个较早的版本,UNIX的可执行文件格式最开头包含一条PDP-11平台上的跳转指令,使得在PDP-11硬件平台上能够正常运行,而在其他平台上,这条指令就是“魔数”(magic number),只能用作文件类型的标识。

Java类文件(编译到字节码)以十六进制0xCAFEBABE 开头

JPEG图片文件以0xFFD8开头,0xFFD9结尾

PDF文件以“%PDF"的ASCII码开头,十六进制25 50 44 46

进行这样的约定之后,我们发现,如果文件开头的”魔数“不符合要求,那么这个文件的格式一定不对。这让我们立刻发现文件损坏或者搞错文件类型的情况。由于不同类型的文件有不同的魔数,当你把JPEG文件当作PDF打开的时候,立即就会出现异常。

下面是一个摇滚乐队和巧克力豆的故事,有助于你理解魔数的作用。

美国著名重金属摇滚乐队Van Halen的演出合同中有此一条:演出后台必须提供M&M巧克力豆,但是绝对不许出现棕色豆。如有违反,根据合同,乐队可以取消演出。实际情形中乐队甚至会借此发飙,砸后台,主办方也只好承担所有经济损失。这一条款长期被媒体用来作为摇滚乐队耍大牌的典型例子,有传言指某次由于主唱在后台发现了棕色M&M豆,大发其飙地砸了后台,造成损失高达八万五千美元(当时是八十年代,八万五千还是不少钱)。Van Halen乐队对此从不回应。

多年以后,主唱David Lee Roth 在自传中揭示了这一无厘头条款的来由:Van Halen 乐队在当时是把大型摇滚现场演唱会推向高校及二/三线地区的先锋,由于常常会遇到没有处理过这种大场面的承办者,因此合同里有大量条款来确认演出承办者把场地,器材,工作人员安排等等细节都严格按要求准备好。合同里有成章成章的技术细节,包括场地的承重要求,各类出入口的宽度,电源要求,以至于插座的数量和插座之间的间隔。因此,乐队把棕色豆条款夹带在合同里,以确认承办方是否“仔仔细细阅读了所有条款”。David说:“如果我在后台的M&M里找到棕色豆,我就会立马知道承办方(十有八九)是没好好读完全部技术要求,我们肯定会碰上技术问题。某些技术问题绝对会毁了这场演出,甚至害死人。”

回到上文,八万五千美元的损失是怎么来的?某次在某大学体育场办演唱会,主唱来到后台,发现了棕色M&M豆,当即发飙,砸了后台化妆室,财物损坏大概值一万二。但实际上更糟糕的是,主办方没有细读演出演出场地的承重要求,结果整个舞台压垮(似乎是压穿)了体育场地面,损失高达八万多。

事后媒体的报道是,由于主唱看到棕色M&M豆后发飙砸了后台,造成高达八万五的损失…

原文地址

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. CodeHaven 2. ByteBubbles 3. SyntaxSparks 4. TechTemple 5. LogicLounge 6. BinaryBazaar 7. Programmers' Paradise 8. CodeCraftsmen 9. SiliconSprint 10. AlgorithmAlley ### 回答2: 当然,我来为您提供一些有创意的工作室名称,希望能为您带来灵感。这是我的10个建议: 1. CodeCraft 工坊:将编码与工艺巧妙地结合,象征着工作室对编程艺术的执着追求。 2. ByteWorks 工作室:以“字节”为单位的计算机存储单元,强调工作室专注于编码和数字技术的深度。 3. TechGenius 实验室:将“技术天才”与实验室相结合,表达工作室追求创新、实验和突破的决心。 4. PixelPioneers 工作室:将“像素”与“开拓者”结合,寓意工作室致力于通过图像和设计开辟新的道路。 5. CodeWhiz 创意工场:结合“编码专家”和“创意工场”,突出工作室在编程与创意产出方面的出色表现。 6. ByteBurst 技术盛宴:将“字节”与“迸发”相结合,展示工作室在技术创新和突破中的活力和激情。 7. ByteBridge 工作室:将“字节”与“桥梁”结合,象征着工作室致力于连接和整合不同的技术和平台。 8. CodeGenius 法则:将“代码”与“天才”相结合,体现工作室对编码技术的高超掌握和洞察力。 9. PixelGenix 实验室:将“像素”与“基因”相结合,突出工作室在视觉设计和创新方面的独特基因。 10. TechHub 技术阁楼:将“技术”与“阁楼”相结合,表达工作室作为技术创新的重要枢纽和平台。 希望以上这些名称能够激发您的灵感,找到一个合适而有创意的名字来命名您的工作室! ### 回答3: 当然!下面给您列举了十个富有创意的工作室名称供您参考: 1. 编码魔法师工作室:这个名字充满了幻想,展现了程序员们在代码世界中所施展的魔法般的能力。 2. 未来编织者工作室:这个名字传达了我们编程师在创造未来的道路上的重要角色。 3. 脑洞无限工作室:表达了程序员们拥有无限创意和想象力的能力。 4. 程序绘匠工作室:将程序员与艺术家相结合,强调了程序代码作为艺术创作的一部分。 5. 代码仙境工作室:以代码为媒介,呈现了一个神奇的程序世界。 6. 虚拟大师工作室:强调了程序员们在虚拟世界中扮演的主导角色。 7. 创新巢穴工作室:突出了程序员们在创新和创造领域的杰出能力。 8. 数据操盘手工作室:将程序员比作操盘手,突显了对数据的敏锐处理能力。 9. 异想天开工作室:传达了程序员们常常跳出常规思维,拥有想象力和创新的乐趣。 10. 电子奇幻工作室:将电子技术与奇幻元素相结合,创造出一个神秘而有趣的工作室氛围。 希望上述名称能够给您一些启发,祝您成功取得一个富有创意的工作室名称!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值