IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Binary

共 5 篇相关文章

IT 累计浏览 1,625

网络传输协议AMF初探

这篇讲的是 AMF(Action Message Format)协议,一种专为高效数据传输设计的二进制格式。与传统的 SOAP/XML 文本传输方式不同,AMF 采用二进制编码,能高度压缩数据,特别适合传递大量资料——数据量越大,传输效率优势越明显。文章梳理了 AMF 的核心特点:它可以直接传输 Flash 内置对象(如 Object、Array、Date),服务器端能自动解析,大幅简化开发流程。 作者从 Flash Remoting 的实际选择出发,对比了 AMF 与 SOAP 的关键差异。AMF 不仅比冗长的 XML 更高效,而且因为它专注于支持 ActionScript 数据类型,在浏览器中体积仅需约 4KB(压缩后),而 SOAP 则庞大得多,且存在头部请求不支持的问题。文章还列举了 AMF 协议支持的数据类型及其对应的十六进制值,展示了其结构的紧凑性。 在实现层面,文章介绍了 AMF 基于 HTTP 的典型处理流程:从客户端请求、反序列化、服务处理到响应序列化,并提及 PHP、.NET、Python、Ruby 等主流语言都已拥有成熟的 AMF 框架(如 AMFPHP、FluorineFx),开发者可以快速实现 Flash 与后端数据库的通信。 总的来说,这篇文章清晰地说明了 AMF 如何通过二进制优化和对 Flash 生态的专注,在特定场景下(尤其是需要高效、轻量交互的 Web 应用中)成为比 SOAP 更具优势的选择。

IT 累计浏览 3,181

趣题:老鼠与毒药问题的推广

这篇讲的是一个经典数学趣题——老鼠与毒药问题——的扩展探讨。作者从IBM Ponder This 三月谜题出发,首先回顾了大家可能更熟悉的那个版本:利用一组老鼠在有限轮次内,从若干瓶药水中找出被毒药污染的那一瓶。这个问题的核心是信息论与二进制编码的巧妙结合。 而文章的重点在于“推广”。作者并没有停留在经典解法上,而是引导读者思考更一般化的情景:比如毒药瓶的数量不固定,或者每一轮可以对老鼠进行不同的安排与观察。文章分析了这些参数变化后,问题的复杂度和所需的最优策略会如何随之改变。它揭示了当问题的约束条件被放开时,原本简洁的二进制思路如何需要被更精细的数学工具所替代或深化。 读下来,你会发现这不只是对一个谜题的趣味解答,更像是一次从特例走向通解的思维体操,展示了数学问题在推广过程中所产生的新结构与美感。

IT 累计浏览 6,544

神秘常量复出!用0x077CB531计算末尾0的个数

这篇讲的是如何用一个看似天书的十六进制常量 `0x077CB531`,高效计算一个整数二进制表示末尾连续0的个数。作者从大家熟知的 Quake III 引擎中那个用于快速平方根倒数的神秘常量 `0x5F3759DF` 出发,引出了这段同样充满“魔法”气息的代码。 核心在于那个精心选择的“魔数”与一个乘法操作。它巧妙地将最低有效位孤立出来,使得后续的位运算能直接定位到第一个 `1` 的位置。本质上,这是一种极富创造性的位掩码技巧,用数学的精巧规避了循环或条件判断,在极少数的几个操作内就完成了传统上需要循环计数才能完成的工作。 文章拆解了每一步运算的意图,揭示了其背后的数学原理,展现了如何将二进制结构特性转化为极致的执行效率。这种将算法思维与硬件特性紧密结合的实现,正是它读起来令人拍案叫绝的地方。

IT 累计浏览 2,975

让MySQL搜索、排序时区分大小写

这篇讲的是如何解决 MySQL 数据库在默认配置下搜索和排序时“吃掉”大小写差异的问题。作者从实际应用出发——比如需要严格匹配密码或区分大小写的唯一标识符时,发现 MySQL 默认的 `utf8_general_ci` 校对规则会自动忽略大小写,导致 `SELECT` 结果与预期不符。 核心方法是在 SQL 语句中通过 `COLLATE` 子句临时覆盖列的默认排序规则,例如使用 `WHERE utf8_column COLLATE utf8_bin = 'CaseSensitiveValue'`,或者在建表/修改列时直接指定二进制校对规则(如 `utf8mb4_bin`)。文章对比了在语句中强制、建表时设定以及利用 `BINARY` 关键字这几种方案的适用场景和注意事项。 关键差异在于性能与精确度的权衡:二进制排序更精确但可能影响索引效率和排序逻辑。作者清晰地指出了,对于必须精确区分大小写的业务字段(如密码哈希),选择 `utf8mb4_bin` 是更彻底的方案;而对于临时查询需求,则推荐在 SQL 中灵活添加 `COLLATE`,以最小改动达到目的。

IT 累计浏览 3,758

字体文件也属于二进制文件

这篇讲的是很多人对文件类型的一个常见认知误区。作者从“自己以前只知道图片是二进制文件”这个个人经验出发,澄清了“字体文件(.ttf、.otf等)同样是二进制文件”这一关键点。 文章深入对比了字体文件与我们熟悉的图片文件在存储本质上的相似性:它们都不是像.txt文件那样可以直接用文本编辑器打开、阅读和修改的纯文本。相反,它们内部包含的是经过特定编码和复杂结构化的二进制数据流——字体文件存储的是字形轮廓、排版规则等指令;图片文件存储的是像素矩阵或压缩数据。二者的共同点在于,其内容的呈现(显示文字或图像)依赖于专门的解析软件,而非人眼直接可读。 理解这一点非常重要,因为它解释了为什么我们不能用记事本修改字体,也揭示了在网页开发、应用打包或数据传输时,为何需要正确设置这些文件的MIME类型和编码。作者通过这个看似微小的知识点,帮助开发者更透彻地理解文件系统的底层逻辑,从而在处理资源文件时避免一些隐蔽的错误。