存储引擎在存储整数时,一般会使用最高位作为标志位,标记存储的整数是正数还是负数(参考),最高位也被称为“most significant bit (MSb)”。通常,最高位为1则表示正数,最高位为0,则表示负数。更进一步的,负数则会通过补码(参考:two’s complement)的方式表示。但是,InnoDB没有使用这种方法。InnoDB 的整数存储在死锁诊断时,偶然注意到,InnoDB 在存储整数时,与一般的系统是不同的。例如,int 类型存储 1 的时候,使用的表示是:0x80000001。更多的示例可以参考右图:整数值InnoDB 表示10x80000001-10x7fffffff70x80000007-70x7ffffff9可以看到,这与一般的有符号型的整数存储是相反的。即:正数表示时,最高位(MSb)为1负数表示时,最高位(MSb)为0关于这个问题,在Stackoverflow上也有看到有部分用户有类似的疑问:mysql highest bit Whether is 1 or 0 , when column is designed signed inthow mysql represent two’s complement本文将讨论为什么会这样。考虑 8-bit 场景下的这里来回顾一下“体系结构”中的最为基础的一些知识吧。整数值绝对值绝对值的二进
...继续阅读
(83)
我们一直有个想法,让 AI 能自动帮我们完成我们想要做的事情,让自动驾驶,自动写文章,自动做饭,自动操作设备,自动……随着 AI 的发展,这个想法越来越接近现实,但是还没有实现。大型语言模型已经具备了强大的知识掌握能力和语言表达能力,能够进行复杂的对话、代码生成、逻辑推理,甚至模拟某种程度的「思考过程」。但现实是,从「能说会道」到「能完成任务」之间,还有一段不小的距离。我们不妨换个角度想一想:当我们让一个人类来完成一项任务时,我们通常会先给出一个大致的目标,然后逐步明确问题的边界、操作的步骤、可用的工具以及判断结果是否合格的标准。这个过程,本质上就是在界定问题范围。而问题范围的界定程度,直接决定了完成任务的难易程度。举个例子:如果你让一个人「帮我查一下明天的天气」,这个问题的边界非常清晰:地点、时间、数据源、输出格式都相对明确。但如果你说:「帮我设计一个新产品并提出完整的商业策略」,这个任务的边界就非常模糊:用户是谁?目标市场在哪里?预算是多少?成功的标准是什么?每个维度都可能引出一连串子问题。同样的道理也适用于 AI。当前的 LLM 和 Agent 系统,在处理边界清晰的问题时表现良好,比如问答、摘要、代码填空等。但一旦任务的边界开始模糊、动态、依赖外部反馈,AI 的表现就会迅速下降。我们可以将任务的难度,理解为 AI 需要「摸清楚问题边界」的程度:边界清晰:问题的输入、输出、规
...继续阅读
(73)