<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>xjhjtzac</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://xjhjtz.github.io/</id>
  <link href="https://xjhjtz.github.io/" rel="alternate"/>
  <link href="https://xjhjtz.github.io/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, xjhjtzac</rights>
  <subtitle>欢迎来到我的Blog</subtitle>
  <title>Xjhjtzac的Blog</title>
  <updated>2026-07-20T13:49:13.653Z</updated>
  <entry>
    <author>
      <name>xjhjtzac</name>
    </author>
    <category term="计算机历史" scheme="https://xjhjtz.github.io/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%8E%86%E5%8F%B2/"/>
    <category term="103-计算机" scheme="https://xjhjtz.github.io/tags/103-%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
    <category term="computer history" scheme="https://xjhjtz.github.io/tags/computer-history/"/>
    <content>
      <![CDATA[<h2 id="引言"><a href="#引言" class="headerlink" title="引言"></a>引言</h2><p>1958年8月1日，在北京中科院计算技术研究所，一台占地数十平方米、由约800个电子管和约2000个二极管组成的庞大机器成功完成了一小段程序的运行。这台机器就是中国第一台通用电子数字计算机，最初命名为<strong>八一型计算机</strong>，后称<strong>103型计算机（103机）</strong>。它参照苏联小型通用机M-3仿制改进而来。</p><p>中国科学院官方记载了一个生动的细节：当机器调试成功时，时任中国科学院党组书记、副院长张劲夫在现场按捺不住内心的喜悦，风趣地给这台机器取了个小名——<strong>“有了”</strong>。中国从此”有了”计算机。</p><p>103机参照苏联小型通用机M-3仿制改进而来，由中科院计算技术研究所与北京有线电厂（国营738厂）等单位合作研制。该机采用电子管线路，主存容量1024字（磁鼓），字长30位，每秒可进行30次运算。103机的研制成功，标志着中国计算机工业的开端。</p><p>那么，这样一台”慢”到极致的机器，究竟是如何被组织起来的？</p><p><img src="https://a1.boltp.com/2026/07/17/6a59f51305575.png" alt="103_pana_compressed"></p><p>图1 103计算机照片 注：来源于极客逻辑的《也许这是有史以来最清晰的103机的照片了》</p><h2 id="一、宏观架构：从冯·诺依曼到中国实践"><a href="#一、宏观架构：从冯·诺依曼到中国实践" class="headerlink" title="一、宏观架构：从冯·诺依曼到中国实践"></a>一、宏观架构：从冯·诺依曼到中国实践</h2><p>103机是一台严格的冯·诺依曼体系结构计算机，其组织结构可以概括为五大部件。</p><h3 id="1-运算器（算术逻辑单元）"><a href="#1-运算器（算术逻辑单元）" class="headerlink" title="1. 运算器（算术逻辑单元）"></a>1. 运算器（算术逻辑单元）</h3><p>103机的运算器由电子管（真空管）构成，专门负责加减乘除四种基本运算。M-3&#x2F;103机的运算逻辑参照了苏联的设计，其核心是一个串行运算单元——每次处理一位二进制数，通过多个时钟周期串联完成完整字长的运算。</p><p>运算器内部包含：</p><ul><li>加法器</li><li>寄存器组（包括A寄存器、B寄存器、C寄存器等）</li><li>移位电路</li></ul><h3 id="2-控制器"><a href="#2-控制器" class="headerlink" title="2. 控制器"></a>2. 控制器</h3><p>控制器从磁鼓存储器中逐条取出指令，解码后发出控制信号。一条指令的执行分为八个步骤（拍），通过脉冲分配器协调时序：</p><ol><li>指令地址从启动寄存器→选择寄存器，脉冲分配器将读信号送至磁存储器控制线路</li><li>指令从磁鼓读出到寄存器C</li><li>启动寄存器加1（为下一条指令做准备）；操作码部分→操作部件，第一地址→选择器</li><li>第二地址→选择寄存器；第一个数由磁鼓→C寄存器</li><li>第一数从C寄存器→A寄存器</li><li>第二个数由磁鼓→C寄存器</li><li>第二个数从C寄存器→B寄存器</li><li>局部程序发生器发送脉冲序列到运算器执行运算，结果按地址写入磁鼓</li></ol><p>这些步骤在今天看来无比繁琐，但这就是当年一台计算机完成一次加法所需经历的完整路径。</p><h3 id="3-存储器"><a href="#3-存储器" class="headerlink" title="3. 存储器"></a>3. 存储器</h3><p>103机的存储器分为两级：</p><ul><li><p><strong>内存储器（主存）</strong>：最初采用<strong>磁鼓存储器</strong>。磁鼓是一个表面涂有磁性材料的旋转圆筒，通过磁头读写数据。磁鼓转速为3000转&#x2F;分，平均读取时间10微秒，写入密度3.2脉冲&#x2F;毫米。初始容量为<strong>1024个字（约4KB）</strong>，每字<strong>32位</strong>。后期可选配CX-1型磁芯存储器，容量扩大1倍，速度从每秒30次提升至上千次。</p></li><li><p><strong>外存储器</strong>：早期103机仅有磁鼓，DJS-1型号起增加了<strong>磁带机</strong>扩展外存。</p></li></ul><p><strong>1024个字是什么概念？</strong> 一页A4纸的纯文本大约有3-4KB。也就是说，初期的103机内存只够存放一页文字。</p><h3 id="4-输入设备"><a href="#4-输入设备" class="headerlink" title="4. 输入设备"></a>4. 输入设备</h3><ul><li><strong>五单位纸带阅读机</strong>：程序和数据事先在纸带上穿孔（有孔代表1，无孔代表0），通过光电阅读机读取。</li><li><strong>控制打字机</strong>：由苏联五单位F50型收发电传机改装，用于操作员与机器的低速交互。</li></ul><h3 id="5-输出设备"><a href="#5-输出设备" class="headerlink" title="5. 输出设备"></a>5. 输出设备</h3><ul><li><strong>行式打印机</strong>：将结果打印在纸带上。</li><li><strong>纸带穿孔输出机</strong>：用于保存中间结果。</li></ul><hr><h2 id="二、微观组织：指令系统与数据通路"><a href="#二、微观组织：指令系统与数据通路" class="headerlink" title="二、微观组织：指令系统与数据通路"></a>二、微观组织：指令系统与数据通路</h2><h3 id="指令格式（据GitHub开源硬件-模拟器项目还原）"><a href="#指令格式（据GitHub开源硬件-模拟器项目还原）" class="headerlink" title="指令格式（据GitHub开源硬件&#x2F;模拟器项目还原）"></a>指令格式（据GitHub开源硬件&#x2F;模拟器项目还原）</h3><p>103机共有<strong>64条指令</strong>（操作码00~77，八进制），采用<strong>双地址指令格式</strong>。一条完整的指令字长为<strong>30位</strong>，格式如下：</p><table><thead><tr><th>字段</th><th>宽度</th><th>说明</th></tr></thead><tbody><tr><td>操作码（ОП）</td><td>6位（00~77八进制）</td><td>64种指令</td></tr><tr><td>第一地址（А1）</td><td>12位（0000~7777八进制）</td><td>第一个操作数地址</td></tr><tr><td>第二地址（А2）</td><td>12位（0000~7777八进制）</td><td>第二个操作数地址</td></tr></tbody></table><p>以Oct Verilog硬件描述语言实现的计算机核心模块中，6位操作码信号定义为 <code>[5:0]</code>，地址信号定义为 <code>[11:0]</code>，数据通路定义为 <code>[29:0]</code>（30位）。</p><p>GitHub上的测试程序以如下格式表示指令：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">0000@ +00 3000 3001</span><br><span class="line">0001@ +45 3001 3001</span><br></pre></td></tr></table></figure><p>其中 <code>0000@</code> 为八进制地址，<code>+00</code> 为八进制操作码，<code>3000</code> 和 <code>3001</code> 分别为两个八进制地址。</p><p>据Verilog源代码分析，103机支持以下运算类别：</p><ul><li>加法（ADD）、减法（SUB）、乘法（MUL）、除法（DIV）</li><li>逻辑与（AND）</li><li>数据传送（MOV：C→A、C→B、B→C、存贮器→C）</li><li>移位（左移、右移）</li><li>输入输出（I&#x2F;O）</li><li>清除（CLEAR A、CLEAR B、CLEAR C）</li><li>求反（NOT A、NOT B）</li><li>绝对值控制</li></ul><h3 id="字长与数据格式"><a href="#字长与数据格式" class="headerlink" title="字长与数据格式"></a>字长与数据格式</h3><p>103机采用<strong>30位字长</strong>（其蓝本苏联M-3为32位，103机调整为30位），其中：</p><ul><li>1位符号位（正&#x2F;负）</li><li>29位数值位</li></ul><p>数据以定点数形式存储，数值范围在[-1, 1)之间的小数范围。这意味着要处理大于1的数字，程序员必须手动进行比例因子（scaling）管理——这在今天完全不可想象。</p><h3 id="磁鼓存储器参数"><a href="#磁鼓存储器参数" class="headerlink" title="磁鼓存储器参数"></a>磁鼓存储器参数</h3><table><thead><tr><th>参数</th><th>数值</th></tr></thead><tbody><tr><td>类型</td><td>磁鼓存储器</td></tr><tr><td>容量</td><td>1024字（初始），后期可选配CX-1型磁芯存储器</td></tr><tr><td>字长</td><td>30位</td></tr><tr><td>转速</td><td>3000转&#x2F;分</td></tr><tr><td>平均读取时间</td><td>10微秒</td></tr><tr><td>写入密度</td><td>3.2脉冲&#x2F;毫米</td></tr></tbody></table><hr><h2 id="三、物理组织：一间屋子就是一台电脑"><a href="#三、物理组织：一间屋子就是一台电脑" class="headerlink" title="三、物理组织：一间屋子就是一台电脑"></a>三、物理组织：一间屋子就是一台电脑</h2><h3 id="占地与规模"><a href="#占地与规模" class="headerlink" title="占地与规模"></a>占地与规模</h3><p>103机的主机部分由多个大型机柜组成，总占地面积约<strong>40平方米</strong>。它包括：</p><ul><li><strong>运算器与控制器的电子管机柜</strong></li><li><strong>磁鼓存储器机柜</strong></li><li><strong>电源机柜</strong>（整流器、稳压器）</li><li><strong>控制台</strong>（操作面板，带指示灯、开关、按钮）</li></ul><h3 id="电子管与元器件"><a href="#电子管与元器件" class="headerlink" title="电子管与元器件"></a>电子管与元器件</h3><p>据中科院官方资料，苏联M-3原型机约使用<strong>800个电子管、2000个氧化铜二极管、10000个阻容元件</strong>，分装成400个插件插入3个机柜，全机约有10000个接触点和50000个焊接点。103机在仿制过程中将氧化铜二极管换为性能更稳定的晶体二极管。</p><p>早期版本的八一型&#x2F;103型计算机使用了700多只电子管（与M-3相近），央视报道提到的”近四千个半导体锗二极管和八百个电子管”应为103机采用晶体二极管后的配置。后期DJS-3型的磁芯存储器单独使用了376只电子管和424只晶体二极管。</p><h3 id="功耗"><a href="#功耗" class="headerlink" title="功耗"></a>功耗</h3><p>103机的功耗未见明确的公开数据，但参照同类电子管计算机（如苏联M-3约30-40千瓦），其功率应在数十千瓦级别。这些电能大部分转化为热量散发出去，因此机房需配备专门的通风或冷却系统。</p><h3 id="机房环境"><a href="#机房环境" class="headerlink" title="机房环境"></a>机房环境</h3><p>当时的计算机房是一个需要穿白大褂、换拖鞋才能进入的洁净空间，需要保持恒温。操作员站在控制台前，通过一排排指示灯观察机器状态，通过拨动开关和按钮进行控制。</p><hr><h2 id="四、编程：面对裸机"><a href="#四、编程：面对裸机" class="headerlink" title="四、编程：面对裸机"></a>四、编程：面对裸机</h2><h3 id="机器语言编程"><a href="#机器语言编程" class="headerlink" title="机器语言编程"></a>机器语言编程</h3><p>103机没有操作系统，没有汇编器，没有编译器。程序员在纸上写出指令序列后，需要在<strong>五单位纸带</strong>上手动穿孔，然后交给操作员上机运行。</p><h3 id="调试方式"><a href="#调试方式" class="headerlink" title="调试方式"></a>调试方式</h3><p>调试程序是物理层面的。如果程序出错，操作员会：</p><ol><li>从纸带机上读回程序检查是否存在穿孔错误</li><li>在控制台上单步执行每条指令</li><li>观察指示灯检查哪一步的结果出错</li><li>如果怀疑硬件故障，需要逐个测试电子管</li></ol><hr><h2 id="五、那些”八一型”之后的故事"><a href="#五、那些”八一型”之后的故事" class="headerlink" title="五、那些”八一型”之后的故事"></a>五、那些”八一型”之后的故事</h2><h3 id="研制时间线（据中科院官方资料及公开文献）"><a href="#研制时间线（据中科院官方资料及公开文献）" class="headerlink" title="研制时间线（据中科院官方资料及公开文献）"></a>研制时间线（据中科院官方资料及公开文献）</h3><table><thead><tr><th>年份</th><th>事件</th></tr></thead><tbody><tr><td>1952年</td><td>华罗庚从清华大学物色闵乃大、夏培肃、王传英3位青年学者，组建计算机研究小组</td></tr><tr><td>1956年</td><td>“十二年科学规划”将计算技术列为57项重大科技任务之一，同时与半导体、自动化、无线电电子学并列为”四项紧急措施”；6月，计算所筹备委员会成立，华罗庚任主任</td></tr><tr><td>1956年9月</td><td>中国派出高级专家考察团赴苏联考察计算机技术</td></tr><tr><td>1957年4月</td><td>何绍宗作为郭沫若代表访苏，获得M-3图纸资料</td></tr><tr><td>1957年11月</td><td>计算所在西苑旅社宣布M-3工程组成立，莫根生任组长、张梓昌任副组长</td></tr><tr><td>1958年1月</td><td>计算所中关村科研楼落成，工程组分设电源、运算器、控制器、磁鼓、输入输出5个小组</td></tr><tr><td>1958年5月31日</td><td>凌晨2时全部完工，经通铃检查确认连线焊接全部正确</td></tr><tr><td>1958年7月</td><td>完成调机，比原计划提前5个月</td></tr><tr><td>1958年8月1日</td><td>八一建军节当天试算成功，宣布中国第一台计算机诞生，命名为<strong>八一型计算机</strong></td></tr><tr><td>1959年</td><td>北京有线电厂开始小批量生产103机</td></tr><tr><td>1960年</td><td>上海有线电厂投产；研制成功CX-1型磁芯存储器，速度提升至每秒上千次；7-8月因质量不稳定停止对外供应</td></tr><tr><td>1961年</td><td>质量整顿后通过生产鉴定，改名<strong>DJS-1型计算机</strong></td></tr><tr><td>1965年</td><td>全面升级后通过鉴定，命名<strong>DJS-3型计算机</strong></td></tr><tr><td>1966年2月</td><td>晶体管计算机上马，第一代电子管计算机生产画上句号</td></tr></tbody></table><h3 id="产量"><a href="#产量" class="headerlink" title="产量"></a>产量</h3><p>据中科院官方资料记载，从1958年起103机迭代DJS-1、DJS-3两代，先后生产了<strong>40多台</strong>，供全国用户单位使用。另据档案资料统计，103系列（含八一型、103型、DJS-1、DJS-3）共计生产<strong>49台</strong>，其中北京有线电厂生产18台103型，上海有线电厂生产7台DJS-1后续版本，另有6台DJS-3。</p><h3 id="沿革命名"><a href="#沿革命名" class="headerlink" title="沿革命名"></a>沿革命名</h3><table><thead><tr><th>时期</th><th>名称</th><th>说明</th></tr></thead><tbody><tr><td>1957-1958</td><td>八一型计算机</td><td>因8月1日公开演示得名</td></tr><tr><td>1958-1960</td><td>103型计算机</td><td>北京有线电厂量产时的型号</td></tr><tr><td>1960-1961</td><td>DJS-1型计算机</td><td>质量整顿后重新鉴定命名</td></tr><tr><td>1963-1966</td><td>DJS-3型计算机</td><td>升级版，采用磁芯存储器</td></tr></tbody></table><h3 id="现存遗物"><a href="#现存遗物" class="headerlink" title="现存遗物"></a>现存遗物</h3><p>目前，仅有一台DJS-1型计算机保存于<strong>曲阜师范大学图书馆</strong>。</p><h3 id="后续机型"><a href="#后续机型" class="headerlink" title="后续机型"></a>后续机型</h3><p>103机研制成功一年多后，<strong>104机</strong>（每秒1万次）问世。此后中国计算机发展不断加速：</p><ul><li>1964年：119机（每秒5万次，首台完全自主设计）</li><li>1973年：150机（每秒百万次，首台集成电路大型机）</li><li>1983年：银河一号（每秒亿次，首台巨型机）</li></ul><h2 id="六、技术启示"><a href="#六、技术启示" class="headerlink" title="六、技术启示"></a>六、技术启示</h2><p>回顾103机的架构，可以得出一些超越时代的启示：</p><ol><li><p><strong>体系结构是永恒的</strong>。冯·诺依曼结构虽然在103机上用电子管和磁鼓实现，但其核心思想至今仍是通用计算机的基础。</p></li><li><p><strong>瓶颈决定速度</strong>。103机的运算速度是由磁鼓存储器的访问速度决定的——运算器其实还能更快，但取指令和取数据的速度跟不上。这个”存储墙”问题，在今天的处理器中依然存在，只是表现形式从磁鼓变成了DRAM和缓存层次。</p></li><li><p><strong>以数量换质量</strong>。电子管时代的计算机通过大量半导体二极管弥补电子管逻辑的不足，这种”用冗余换可靠”的思路在早期数字电路设计中非常普遍。</p></li></ol><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>“有了”——张劲夫脱口而出的这两个字，不止是一个历史昵称，更准确反映了那个时代对计算能力的渴求。103机不只是一台机器的型号，它是中国计算机事业的”第一块砖”。</p><p>每秒30次。那便是中国计算机时代的起点。</p><hr><p><strong>参考文献</strong></p><p>[1] 中国科学院. 科技自立自强 中国从此”有了”计算机[N&#x2F;OL]. 中国科学报, 2024-04-01(4). <a href="https://www.cas.cn/zt/kjzt/kjzlzqzl/kjzlzq/202404/t20240401_5010363.shtml">https://www.cas.cn/zt/kjzt/kjzlzqzl/kjzlzq/202404/t20240401_5010363.shtml</a></p><p>[2] 央视《新中国的第一》节目组. 第一部国产电子计算机[EB&#x2F;OL]. 共产党员网, 2019-07-29. <a href="https://www.12371.cn/2019/07/29/VIDE1564364182596530.shtml">https://www.12371.cn/2019/07/29/VIDE1564364182596530.shtml</a></p><p>[3] 档案归档计划组. 国产电子计算机：八一型计算机（103型计算机）[EB&#x2F;OL]. Bilibili, 2024-08-21. <a href="https://www.bilibili.com/opus/797537395190792199">https://www.bilibili.com/opus/797537395190792199</a></p><p>[4] Computer-103 Organization. 103计算机硬件电路源码（Verilog）[EB&#x2F;OL]. GitHub. <a href="https://github.com/Computer-103/hardware">https://github.com/Computer-103/hardware</a></p><p>[5] Computer-103 Organization. 103计算机模拟器[EB&#x2F;OL]. GitHub. <a href="https://github.com/Computer-103/simulator">https://github.com/Computer-103/simulator</a></p><p>[6] Computer-103 Organization. 103机测试程序集[EB&#x2F;OL]. GitHub. <a href="https://github.com/Computer-103/test-program">https://github.com/Computer-103/test-program</a></p><p>[7] Computer-103 Organization. 103计算机纸带转换器[EB&#x2F;OL]. GitHub. <a href="https://github.com/Computer-103/tape-converter">https://github.com/Computer-103/tape-converter</a></p><p>[8] 极客逻辑. 也许这是有史以来最清晰的103机的照片了[EB&#x2F;OL]. (2024-05-05). <a href="https://geek-logic.com/photo_of_computer_103/">https://geek-logic.com/photo_of_computer_103/</a></p>]]>
    </content>
    <id>https://xjhjtz.github.io/2026/07/17/103-jisuanji/</id>
    <link href="https://xjhjtz.github.io/2026/07/17/103-jisuanji/"/>
    <published>2026-07-16T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="引言"><a href="#引言" class="headerlink" title="引言"></a>引言</h2><p>1958年8月1日，在北京中科院计算技术研究所，一台占地数十平方米、由约800个电子管和约2000个二极管组成的庞大机器成功完成了一小段程序]]>
    </summary>
    <title>考古&quot;有了&quot;：一台每秒30次运算的计算机是如何被组织起来的？</title>
    <updated>2026-07-20T13:49:13.653Z</updated>
  </entry>
  <entry>
    <author>
      <name>xjhjtzac</name>
    </author>
    <category term="计算机历史" scheme="https://xjhjtz.github.io/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%8E%86%E5%8F%B2/"/>
    <category term="Markdown" scheme="https://xjhjtz.github.io/tags/Markdown/"/>
    <category term="computer history" scheme="https://xjhjtz.github.io/tags/computer-history/"/>
    <category term="ascii" scheme="https://xjhjtz.github.io/tags/ascii/"/>
    <category term="unicode" scheme="https://xjhjtz.github.io/tags/unicode/"/>
    <content>
      <![CDATA[<h2 id="引言"><a href="#引言" class="headerlink" title="引言"></a>引言</h2><p>今天，我们在网页上阅读中文、在聊天软件里发送表情符号、在代码中混合使用多种语言——这一切都显得理所当然。但在计算机诞生之初，让机器”理解”文字，曾是一个令人头疼的问题。</p><p>字符编码的本质，是将人类可读的字符映射为计算机可处理的二进制序列。这段演化史，从1960年代一直延续到今天，见证了计算机从美国实验室走向全世界的全过程。</p><h2 id="一、ASCII-时代：单字节编码的奠基"><a href="#一、ASCII-时代：单字节编码的奠基" class="headerlink" title="一、ASCII 时代：单字节编码的奠基"></a>一、ASCII 时代：单字节编码的奠基</h2><h3 id="1-1-从电报码到-ASCII"><a href="#1-1-从电报码到-ASCII" class="headerlink" title="1.1 从电报码到 ASCII"></a>1.1 从电报码到 ASCII</h3><p>字符编码的源头可以追溯到1837年摩尔斯发明的电报系统。摩尔斯电码通过长短脉冲的组合来区分26个英文字母，这是人类历史上第一个标准化的字符编码系统。</p><p>到了20世纪，5位博多电报码（Baudot code）被广泛用于电传打字机。但随着计算机的兴起，一套更完善的编码标准呼之欲出。</p><p>1960年10月6日，美国标准协会（ASA，现为ANSI）的X3.2小组委员会召开了第一次会议，正式启动了ASCII标准的制定工作。1963年，第一版ASCII标准正式发布。</p><p>ASCII（American Standard Code for Information Interchange，美国信息交换标准代码）采用<strong>7位二进制</strong>编码，共可表示128个字符。</p><h3 id="1-2-ASCII-的编码结构"><a href="#1-2-ASCII-的编码结构" class="headerlink" title="1.2 ASCII 的编码结构"></a>1.2 ASCII 的编码结构</h3><p>ASCII的128个字符被精心划分为三部分：</p><ul><li><p><strong>控制字符（0x00–0x1F）</strong> ：共32个，用于控制打印机等外部设备，如换行（LF，0x0A）、退格（BS，0x08）、响铃（BEL，0x07）等。</p></li><li><p><strong>空格（0x20）</strong> ：单独作为一个字符。</p></li><li><p><strong>可打印字符（0x21–0x7E）</strong> ：共94个，包括数字0–9、大写字母A–Z、小写字母a–z以及标点符号。</p></li></ul><p>例如，大写字母<code>A</code>的ASCII编码是十进制65（二进制01000001），小写字母<code>a</code>是97。</p><p>为什么是7位而不是8位？因为当时的数据传输成本高昂，7位比8位更经济。ASCII的设计还特别考虑了排序的便利性——字母和数字的编码顺序与字典顺序一致。</p><h3 id="1-3-ASCII-的历史地位"><a href="#1-3-ASCII-的历史地位" class="headerlink" title="1.3 ASCII 的历史地位"></a>1.3 ASCII 的历史地位</h3><p>1968年，美国总统林登·约翰逊签署命令，要求所有联邦政府计算机必须支持ASCII，这巩固了ASCII在美国计算机领域的主导地位。ASCII一直是互联网上最常见的编码，直到2007年被UTF-8超越。</p><p>但ASCII有一个致命缺陷：<strong>它只支持拉丁字母</strong>。当计算机走出英语世界，问题就来了。</p><h2 id="二、区域编码的爆发：百家争鸣的时代"><a href="#二、区域编码的爆发：百家争鸣的时代" class="headerlink" title="二、区域编码的爆发：百家争鸣的时代"></a>二、区域编码的爆发：百家争鸣的时代</h2><h3 id="2-1-欧洲的扩展：ISO-8859-系列"><a href="#2-1-欧洲的扩展：ISO-8859-系列" class="headerlink" title="2.1 欧洲的扩展：ISO-8859 系列"></a>2.1 欧洲的扩展：ISO-8859 系列</h3><p>欧洲非英语国家首先遇到了困难——法语的重音符号、德语的变元音、希腊字母等都不在ASCII的128个字符中。</p><p>解决方案是利用8位字节中闲置的最高位，将编码空间从128扩展到256个字符。其中，ISO-8859-1（又称Latin-1）是最成功的扩展方案，它涵盖了基本的西欧语言，同时保持了与ASCII的兼容。</p><p>但问题在于，ISO标准将全球划分成了15个不同的子集——ISO-8859-1用于西欧、ISO-8859-5用于西里尔字母、ISO-8859-6用于阿拉伯文…… <strong>不同子集之间互不兼容</strong>，一份同时包含法语和希腊语的文档根本无法正确显示。</p><h3 id="2-2-中国的探索：GB2312、GBK-与-GB18030"><a href="#2-2-中国的探索：GB2312、GBK-与-GB18030" class="headerlink" title="2.2 中国的探索：GB2312、GBK 与 GB18030"></a>2.2 中国的探索：GB2312、GBK 与 GB18030</h3><p>对于中文这样拥有数万字符的文字系统，单字节编码更是远远不够。</p><p><strong>GB2312</strong>（1980年发布）是中国首个汉字编码国家标准。它采用<strong>双字节编码</strong>，共收录6763个常用汉字及682个符号（总计7445个字符）。其设计采用”区位码”体系：将汉字按部首划分为94个区，每区94个位。例如，”中”字的GB2312编码为<code>0xD6D0</code>。</p><p>但6763个汉字远远不够——生僻字、繁体字、人名地名中的特殊字都无法表示。</p><p><strong>GBK</strong>（1995年发布）在GB2312基础上将字符集扩展至21886个字符，包含了繁体字和日韩汉字。同时，GBK实现了与ASCII的兼容——高位字节大于<code>0x7F</code>时视为双字节字符，否则按单字节ASCII处理。</p><p><strong>GB18030</strong>（2000年发布）进一步采用1&#x2F;2&#x2F;4字节混合编码，支持27484个汉字及少数民族文字。它至今仍是中国境内的强制国家标准。</p><h3 id="2-3-区域编码的困境"><a href="#2-3-区域编码的困境" class="headerlink" title="2.3 区域编码的困境"></a>2.3 区域编码的困境</h3><p>类似的故事在世界各地同时上演：日本有Shift-JIS，韩国有EUC-KR，中国台湾有Big5……</p><p>这些编码各自为政，导致了一个严重的问题：<strong>不同编码系统之间无法互通</strong>。当一台使用GB2312的计算机向一台使用Big5的计算机发送文本时，接收方看到的只会是乱码。在互联网时代，这种”编码巴别塔”已经无法容忍。</p><h2 id="三、Unicode-的诞生：统一编码空间的革命"><a href="#三、Unicode-的诞生：统一编码空间的革命" class="headerlink" title="三、Unicode 的诞生：统一编码空间的革命"></a>三、Unicode 的诞生：统一编码空间的革命</h2><h3 id="3-1-统一码联盟的成立"><a href="#3-1-统一码联盟的成立" class="headerlink" title="3.1 统一码联盟的成立"></a>3.1 统一码联盟的成立</h3><p>1988年，硅谷工程师乔·贝克尔（Joe Becker）提出了”Unicode”（统一码）的构想。1991年1月3日，贝克尔与李·柯林斯（Lee Collins）、马克·戴维斯（Mark Davis）共同发起成立了非营利组织”统一码联盟”（Unicode Consortium）。</p><p>几乎同时，国际标准化组织（ISO）也在推进ISO&#x2F;IEC 10646项目。双方很快意识到目标一致，于是开始合作，采用同一套字符集。1991年，统一码联盟首次发布了Unicode 1.0标准。</p><h3 id="3-2-Unicode-的核心设计"><a href="#3-2-Unicode-的核心设计" class="headerlink" title="3.2 Unicode 的核心设计"></a>3.2 Unicode 的核心设计</h3><p>Unicode的核心思想极其简洁而有力：<strong>为全世界的每一个字符分配一个唯一的数字编号，称为”码点”（Code Point）</strong> 。</p><p>其技术架构包括：</p><ul><li><p><strong>21位编码空间</strong>：理论上可容纳1,112,064个字符（从<code>U+0000</code>到<code>U+10FFFF</code>）</p></li><li><p><strong>17个编码平面</strong>：每个平面65,536个码点</p><ul><li><p><strong>基本多语言平面（BMP，<code>U+0000–U+FFFF</code>）</strong> ：覆盖大多数常用字符</p></li><li><p><strong>16个辅助平面（<code>U+10000–U+10FFFF</code>）</strong> ：用于罕用汉字、Emoji等</p></li></ul></li></ul><p>截至2020年，Unicode已收录143,859个字符。2010年后，表情符号（Emoji）也被纳入标准，现收录超过3600个。</p><p>例如，汉字”中”的Unicode码点是<code>U+4E2D</code>，”𠮷”（扩展B区汉字）是<code>U+20BB7</code>。</p><h3 id="3-3-汉字统一：CJK的艰难谈判"><a href="#3-3-汉字统一：CJK的艰难谈判" class="headerlink" title="3.3 汉字统一：CJK的艰难谈判"></a>3.3 汉字统一：CJK的艰难谈判</h3><p>Unicode的制定并非一帆风顺。最大的争议之一来自汉字——中国（简体）、中国台湾（繁体）、日本、韩国使用的汉字字形虽有差异，但本质上是同一套文字系统。</p><p>1993年，这些国家和地区成立了表意文字工作组。代表们需要逐一审视成千上万个字符，争论哪些字该被收录、以什么字形为准。一个基本问题是：通用字符集应该以繁体字还是简体字为基础？这场争论不仅是技术问题，更涉及文化正统性之争。</p><h2 id="四、UTF-编码家族：Unicode-的实现方案"><a href="#四、UTF-编码家族：Unicode-的实现方案" class="headerlink" title="四、UTF 编码家族：Unicode 的实现方案"></a>四、UTF 编码家族：Unicode 的实现方案</h2><p>Unicode定义了字符的”编号”，但如何将这些编号存储为字节，还需要具体的编码方案。这就是UTF（Unicode Transformation Format）系列。</p><h3 id="4-1-UTF-8：互联网时代的编码王者"><a href="#4-1-UTF-8：互联网时代的编码王者" class="headerlink" title="4.1 UTF-8：互联网时代的编码王者"></a>4.1 UTF-8：互联网时代的编码王者</h3><p>UTF-8是目前最主流的Unicode实现方案，由肯·汤普逊（Ken Thompson）和罗伯·派克（Rob Pike）设计。其核心特点是<strong>变长编码</strong>，根据字符不同使用1到4个字节。</p><p>编码规则如下：</p><table><thead><tr><th>Unicode范围</th><th>UTF-8字节数</th><th>说明</th></tr></thead><tbody><tr><td><code>U+0000–U+007F</code></td><td>1字节</td><td>完全兼容ASCII</td></tr><tr><td><code>U+0080–U+07FF</code></td><td>2字节</td><td>拉丁文、希腊文等</td></tr><tr><td><code>U+0800–U+FFFF</code></td><td>3字节</td><td>中文、日文、韩文等（BMP）</td></tr><tr><td><code>U+10000–U+10FFFF</code></td><td>4字节</td><td>辅助平面字符、Emoji</td></tr></tbody></table><p>UTF-8的设计堪称工程典范：</p><ul><li><p><strong>兼容ASCII</strong>：所有ASCII字符在UTF-8中仍占1字节，编码完全相同</p></li><li><p><strong>无字节序问题</strong>：不像UTF-16需要区分大端小端</p></li><li><p><strong>自同步特性</strong>：通过首字节高位的<code>0</code>的个数即可判断该字符占几个字节</p></li><li><p><strong>高效存储</strong>：英文文本几乎不增加存储开销，中文平均3字节</p></li></ul><p>数据显示，2023年全球网页中UTF-8的使用率已达98.7%。2007年，UTF-8超越ASCII成为互联网上最常用的编码。</p><h3 id="4-2-UTF-16-与-UTF-32"><a href="#4-2-UTF-16-与-UTF-32" class="headerlink" title="4.2 UTF-16 与 UTF-32"></a>4.2 UTF-16 与 UTF-32</h3><p><strong>UTF-16</strong>：BMP内的字符用2字节表示，辅助平面字符用4字节（通过代理对）。Windows系统内部和Java字符串广泛使用UTF-16。但需要注意字节序问题——需要BOM（Byte Order Mark）标记来区分大端和小端。</p><p><strong>UTF-32</strong>：固定4字节编码，每个字符长度相同，适合需要随机访问的场景，但存储效率较低。</p><h2 id="五、编码选择的实践指南"><a href="#五、编码选择的实践指南" class="headerlink" title="五、编码选择的实践指南"></a>五、编码选择的实践指南</h2><h3 id="5-1-如何选择编码"><a href="#5-1-如何选择编码" class="headerlink" title="5.1 如何选择编码"></a>5.1 如何选择编码</h3><p>在现代开发中，<strong>UTF-8应该是绝大多数场景的首选</strong>。</p><table><thead><tr><th>场景</th><th>推荐编码</th><th>备选方案</th></tr></thead><tbody><tr><td>纯英文文本</td><td>ASCII</td><td>UTF-8</td></tr><tr><td>中、日、韩文本</td><td>UTF-8</td><td>GB18030</td></tr><tr><td>多语言混合文档</td><td>UTF-8</td><td>无</td></tr><tr><td>嵌入式系统</td><td>UTF-8（无BOM）</td><td>ISO-8859-1</td></tr></tbody></table><h3 id="5-2-乱码排查三步法"><a href="#5-2-乱码排查三步法" class="headerlink" title="5.2 乱码排查三步法"></a>5.2 乱码排查三步法</h3><p>当遇到乱码时，可以按以下步骤排查：</p><ol><li><p><strong>确认源编码</strong>：使用<code>file -i filename</code>命令或chardet库检测文件的实际编码</p></li><li><p><strong>检查转换链路</strong>：追踪数据从存储到显示的完整流程，定位首次出现编码错误的位置</p></li><li><p><strong>显式指定编码</strong>：在读写文件、数据库连接、网络传输时，始终显式指定编码（如UTF-8），不要依赖系统默认值</p></li></ol><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>从1963年ASCII的128个字符，到如今Unicode覆盖全球143,859个字符；从只能处理英文的7位编码，到支持地球上几乎所有文字的统一方案——字符编码的演化史，本质上是一部计算机从”美国人的工具”走向”全人类的数字基础设施”的历史。</p><p>理解这段历史，不仅能帮助我们写出更健壮的代码、更高效地排查乱码问题，更能让我们体会到：<strong>技术标准的统一，从来不只是技术问题，更是人类协作与妥协的成果</strong>。从ASCII到Unicode，每一次演进都在打破旧的边界，让数字世界变得更加包容。</p><p>今天，当你在一份文档中自由混用中文、英文、日文和Emoji时，请记得——这背后是几代工程师数十年的努力。</p><hr><p>备注：<strong>本文为AI创作</strong>。</p>]]>
    </content>
    <id>https://xjhjtz.github.io/2026/07/14/ascii-unicode-history/</id>
    <link href="https://xjhjtz.github.io/2026/07/14/ascii-unicode-history/"/>
    <published>2026-07-13T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="引言"><a href="#引言" class="headerlink" title="引言"></a>引言</h2><p>今天，我们在网页上阅读中文、在聊天软件里发送表情符号、在代码中混合使用多种语言——这一切都显得理所当然。但在计算机诞生之初，让机器”理解”文]]>
    </summary>
    <title>从 ASCII 到 Unicode：字符编码演化史</title>
    <updated>2026-07-20T13:49:13.721Z</updated>
  </entry>
  <entry>
    <author>
      <name>xjhjtzac</name>
    </author>
    <category term="闲聊/杂谈" scheme="https://xjhjtz.github.io/categories/%E9%97%B2%E8%81%8A-%E6%9D%82%E8%B0%88/"/>
    <category term="Blogging" scheme="https://xjhjtz.github.io/tags/Blogging/"/>
    <category term="Github" scheme="https://xjhjtz.github.io/tags/Github/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>最近一直在逛Github，偶然间看到了一些非常实用或者有趣的项目，于是我就想着整理出来。</p><hr><h2 id="1-HowToCook"><a href="#1-HowToCook" class="headerlink" title="1.HowToCook"></a>1.HowToCook</h2><ul><li><p>截至<strong>2026年3月24日</strong>，GithubStar数量<strong>99k</strong>个</p></li><li><p>项目地址:   <a href="https://github.com/Anduin2017/HowToCook">Anduin2017&#x2F;HowToCook: 程序员在家做饭方法指南</a></p></li></ul><p>这是一个极其实用的程序员在家做饭方法指南，收录了多达400余种菜品的制作方法。涵盖早餐、荤素菜、主食、水产类等多种菜肴。最让人舒服的是，菜谱内完全没有让人感到疑惑的模糊词语（如”适量”等）。可以说，每一个菜谱的详细程度堪比SOP。同时，索引会按照难度划分菜谱，极大的方便了在家做饭。值得一提的是，本项目有一些衍生作品，如<a href="https://github.com/ryanuo/whatToEat">whatToEat</a>与<a href="https://github.com/LeeJim/HowToCookOnMiniprogram">HowToCookOnMiniprogram</a>等。</p><p>地三鲜食谱(部分)</p><p><img src="https://free.picui.cn/free/2026/03/25/69c3c6acc335a.png" alt="地三鲜食谱（部分）"></p><hr><h2 id="2-Mizuki"><a href="#2-Mizuki" class="headerlink" title="2.Mizuki"></a>2.Mizuki</h2><ul><li><p>截至<strong>2026年3月24日</strong>，GithubStar数量<strong>1.3k</strong>个</p></li><li><p>项目地址：<a href="https://github.com/matsuzaka-yuki/Mizuki">matsuzaka-yuki&#x2F;Mizuki: 下一代Material Design 3 博客主题(Astro驱动)</a></p></li><li><p>项目文档：<a href="https://docs.mizuki.mysqil.com/">Mizuki Next Theme</a></p></li></ul><p>这是一个极其美观强大的博客主题，支持多种部署方法，并且还有完备的官方文档。如果你正在寻找一款既美观又功能强大的博客模板，Mizuki 无疑是一个值得考虑的选择。同时，他还具备基于<strong>Pagefind</strong>的全文搜索功能。自带现代化<strong>Twikoo</strong>评论系统。值得一体的是，其采用<strong>现代化技术栈</strong>，基于 <strong>Astro</strong> 和 <strong>Tailwind CSS</strong> 构建，确保高性能和灵活的样式定制能力。</p><p>模板大致效果(来源:该项目仓库)</p><p><img src="https://cdn.jsdmirror.com/gh/matsuzaka-yuki/Mizuki/README.webp" alt="README.webp (3835×1896)"></p><hr><h2 id="3-CEF-Detector-X"><a href="#3-CEF-Detector-X" class="headerlink" title="3.CEF Detector X"></a>3.CEF Detector X</h2><ul><li><p>截至2026年3月25日，GithubStar数量<strong>2.5k</strong>个</p></li><li><p>项目地址：<a href="https://github.com/ShirasawaSama/CefDetectorX">ShirasawaSama&#x2F;CefDetectorX</a></p></li></ul><p>这是一个 Windows 工具，用来一键扫描电脑里所有基于 Chromium Embedded Framework (CEF) 的应用——比如 Electron、NW.js、CefSharp 等。它会列出这些程序、统计它们占用的总空间，并按大小排序，让你一眼看清”CEF 们”是怎么悄悄吃掉硬盘的。还有背景音乐、高分辨率图标等小彩蛋，<del>最让人绷不住的是，据说有人在他的前作提了个issue，于是这个项目也被用Election重写了一遍。</del></p><p>效果大概是这样。(图片来源:该项目仓库)</p><img title="" src="https://cdn.jsdmirror.com/gh/ShirasawaSama/CefDetectorX/screenshot.png" alt="" data-align="inline"><hr><h2 id="4-Chinese-programmer-wrong-pronunciation"><a href="#4-Chinese-programmer-wrong-pronunciation" class="headerlink" title="4.Chinese-programmer-wrong-pronunciation"></a>4.Chinese-programmer-wrong-pronunciation</h2><ul><li><p>截至2026年3月25日，GithubStar数量<strong>23.2k</strong>个</p></li><li><p>项目地址：<a href="https://github.com/shimohq/chinese-programmer-wrong-pronunciation">shimohq&#x2F;chinese-programmer-wrong-pronunciation</a></p></li></ul><p>这是一个收录了中国程序员最容易读错的技术单词的开源项目，由石墨文档团队维护。它列出了像 <code>Git</code>、<code>nginx</code>、<code>Vue</code>、<code>Linux</code>、<code>cache</code> 等常见术语的正确发音（带🔊可点击收听）、典型错误发音和中文释义，方便随时查阅。此外，项目还衍生出了浏览器扩展、独立网页版和 iOS 应用，非常实用了属于是。而且他的标准发音指向<strong>网易有道词典</strong>，保证标准。</p><hr><h2 id="5-BongoCat"><a href="#5-BongoCat" class="headerlink" title="5.BongoCat"></a>5.BongoCat</h2><ul><li><p>截至2026年3月25日，GithubStar数量<strong>19.7k</strong>个</p></li><li><p>项目地址：<a href="https://github.com/ayangweb/BongoCat">ayangweb&#x2F;BongoCat</a></p></li></ul><p>这是一款开源的跨平台桌面互动宠物，基于 Tauri 构建，支持 macOS、Windows 以及 Linux (X11)。它会实时响应你的键盘、鼠标或手柄操作，同步做出拍打、敲击等生动动作，为桌面增添不少趣味。<br>除了默认的猫咪形象，你还可以导入自定义模型，打造专属伙伴；项目还提供了模型转换工具和专门的模型分享仓库（Awesome-BongoCat），方便大家交流创意。<br>整个应用完全开源，离线运行，不收集任何用户数据，既可爱又安心。如果你想要一只会在你敲代码、玩游戏时陪你互动的桌面小宠物，BongoCat 是个干净又好玩的选择。</p><p>图片来源:本项目仓库</p><p><img src="https://free.picui.cn/free/2026/03/25/69c3df9531b89.png" alt="屏幕截图 2026-03-25 211003.png"></p><hr><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>希望这篇文章能对你有所帮助。</p>]]>
    </content>
    <id>https://xjhjtz.github.io/2026/03/25/githubyouqu/</id>
    <link href="https://xjhjtz.github.io/2026/03/25/githubyouqu/"/>
    <published>2026-03-25T13:42:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>最近一直在逛Github，偶然间看到了一些非常实用或者有趣的项目，于是我就想着整理出来。</p>
<hr>
<h2 id="1-HowToC]]>
    </summary>
    <title>Github那些实用 / 有趣的项目推荐</title>
    <updated>2026-07-20T13:49:13.834Z</updated>
  </entry>
  <entry>
    <author>
      <name>xjhjtzac</name>
    </author>
    <category term="闲聊/杂谈" scheme="https://xjhjtz.github.io/categories/%E9%97%B2%E8%81%8A-%E6%9D%82%E8%B0%88/"/>
    <category term="Blogging" scheme="https://xjhjtz.github.io/tags/Blogging/"/>
    <category term="Milktea" scheme="https://xjhjtz.github.io/tags/Milktea/"/>
    <content>
      <![CDATA[<h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>最近在学校想喝茶，喝了几天后想换口味，于是想到了制作奶茶，但是学校里没热水，所以我只好选择常温泡茶，现在我公布一下自制茉莉奶绿的配方。</p><p>  本教程<strong>无需热水</strong>。</p><h2 id="🧾-材料清单（一杯大约400ml）"><a href="#🧾-材料清单（一杯大约400ml）" class="headerlink" title="🧾 材料清单（一杯大约400ml）"></a>🧾 材料清单（一杯大约400ml）</h2><ul><li><strong>茉莉花茶包</strong> 1包（约2g）——推荐用茉莉绿茶，香气最搭</li><li><strong>纯牛奶</strong> 200ml（选浓的）</li><li><strong>糖</strong> 2g (这里可以用两颗荷氏糖来代替)</li><li><strong>水</strong> 约150ml</li><li><strong>一个杯子</strong>（能装下所有东西的就行）</li></ul><h2 id="📝-制作步骤"><a href="#📝-制作步骤" class="headerlink" title="📝 制作步骤"></a>📝 制作步骤</h2><h4 id="1-冷泡茶底"><a href="#1-冷泡茶底" class="headerlink" title="1. 冷泡茶底"></a>1. 冷泡茶底</h4><p>把茉莉花茶包(或者2-3g茶叶)放进杯子里，加入150ml冷水。盖上盖子或者用保鲜膜封一下，放在阴凉处静置<strong>1.5小时</strong>。</p><h4 id="2-融化糖"><a href="#2-融化糖" class="headerlink" title="2. 融化糖"></a>2. 融化糖</h4><p>在茶汤里放入<strong>1-2g糖</strong>。如果是硬糖的话，可以摇晃减少溶解时间</p><h4 id="3-加入牛奶"><a href="#3-加入牛奶" class="headerlink" title="3. 加入牛奶"></a>3. 加入牛奶</h4><p>最后，把一整盒<strong>200ml纯牛奶</strong>倒进杯子里。</p><h4 id="4-进阶：摇出奶泡"><a href="#4-进阶：摇出奶泡" class="headerlink" title="4. 进阶：摇出奶泡"></a>4. 进阶：摇出奶泡</h4><p>如果想要口感更绵密，可以盖上杯盖<strong>上下用力摇晃30秒</strong>。这样会产生一层细腻的奶泡</p><h2 id="🍹Drink"><a href="#🍹Drink" class="headerlink" title="🍹Drink!!!"></a>🍹Drink!!!</h2><p>等待糖完全化掉就可以饮用啦！</p><h2 id="注意！"><a href="#注意！" class="headerlink" title="注意！"></a>注意！</h2><p>制作后<strong>一定</strong>要将杯子彻底刷干净，包括橡胶圈和杯盖的各种角落！否则会<strong>滋生大量细菌</strong>！</p><hr>]]>
    </content>
    <id>https://xjhjtz.github.io/2026/03/21/milktea/</id>
    <link href="https://xjhjtz.github.io/2026/03/21/milktea/"/>
    <published>2026-03-21T10:00:00.000Z</published>
    <summary>
      <![CDATA[<h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>最近在学校想喝茶，喝了几天后想换口味，于是想到了制作奶茶，但是学校里没热水，所以我只好选择常温泡茶，现在我公布一下自制茉莉奶绿的配方。</p]]>
    </summary>
    <title>论如何在学校里制作茉莉奶绿</title>
    <updated>2026-07-20T13:49:13.837Z</updated>
  </entry>
  <entry>
    <author>
      <name>xjhjtzac</name>
    </author>
    <category term="技术/教程向" scheme="https://xjhjtz.github.io/categories/%E6%8A%80%E6%9C%AF-%E6%95%99%E7%A8%8B%E5%90%91/"/>
    <category term="Blogging" scheme="https://xjhjtz.github.io/tags/Blogging/"/>
    <category term="AI" scheme="https://xjhjtz.github.io/tags/AI/"/>
    <category term="Ollama" scheme="https://xjhjtz.github.io/tags/Ollama/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p> 最近想要在本地部署AI大模型，我经过深思熟虑后决定使用Ollama客户端，主要是它拥有便捷的图形化界面，但是我发现，客户端原生的选择模型界面并没有我想要的模型，下面我们就以<strong>deepseek-r1:7b</strong>作为模型进行演示。</p><h2 id="操作"><a href="#操作" class="headerlink" title="操作"></a>操作</h2><h3 id="1-下载Ollama客户端"><a href="#1-下载Ollama客户端" class="headerlink" title="1.下载Ollama客户端"></a>1.下载Ollama客户端</h3><p>  点击<a href="https://ollama.com/download">这个网址</a>，进入Ollama官网，选择<strong>Download for Windows</strong>，下载完成后双击安装包，点击右下角”Install”，等待安装完成。</p><h3 id="2-安装模型"><a href="#2-安装模型" class="headerlink" title="2.安装模型"></a>2.安装模型</h3><p>需要注意的是，Ollama模型默认安装地址在</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C:\Users\&lt;用户名&gt;\AppData\Roaming\Ollama\models</span><br></pre></td></tr></table></figure><p>这里的用户名要改成你自己的电脑用户名</p><blockquote><p>💡 小贴士：如何修改模型安装路径？</p><p>如果你的C盘空间不足，可以通过设置环境变量来修改默认的存储位置。</p><p>以管理员身份打开 Windows PowerShell。</p><p>输入以下命令，将 &lt;你希望存放的文件夹路径&gt; 替换成你实际想设置的路径，例如 D:\OllamaModels。请注意，这个路径必须是一个已存在的文件夹。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&gt;setx OLLAMA_MODELS &quot;&lt;你希望存放的文件夹路径&gt;&quot; /M</span><br></pre></td></tr></table></figure><p>命令执行成功后，重启你的电脑使设置生效。</p><p>这样设置后，以后下载的模型就会自动保存到你指定的新路径了。</p></blockquote><h3 id="2-1-使用Powershell命令行与Ollama官方源进行安装"><a href="#2-1-使用Powershell命令行与Ollama官方源进行安装" class="headerlink" title="2.1 使用Powershell命令行与Ollama官方源进行安装"></a>2.1 使用Powershell命令行与Ollama官方源进行安装</h3><p>这里先引入一个指令</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ollama run &lt;模型名称&gt;</span><br></pre></td></tr></table></figure><p>这个指令的意思是运行模型，<strong>填模型名称的时候记得把&lt;&gt;也删掉</strong>!例如</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ollama run deepseek-r1:7b</span><br></pre></td></tr></table></figure><p>操作时，（这里就以上文的模型为例）<br>在powershell里输入</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ollama run deepseek-r1:7b</span><br></pre></td></tr></table></figure><p>这里的模型名称可以自己改，Ollama官方源的模型清单在<a href="https://ollama.com/library">这里</a>。<br>获取名称时，点击你要安装的模型，下滑找到”Models”一栏，鼠标悬停在名称上，你就会看到一个复制按钮，点击它即可复制。  </p><p><strong>注意</strong>，模型的参数(b)越大，同一模型下的能力越强，但并不是越大越好，需要按照自己的电脑配置（显卡、内存、CPU、显卡的显存）来选择，我这里使用的是7B版本，切记不要选择参数特别大的模型！</p><p>  当出现类似于下面的提示时，说明安装成功<br><img src="https://free.picui.cn/free/2026/02/18/699532a4c760d.png" alt="图1.1"><br>下载完成后，在Ollama客户端中选择你刚刚下载好的模型，<strong>如下图</strong><img src="https://free.picui.cn/free/2026/02/18/699533a1857b7.png" alt="图1.2"><br>到这里，你的模型已经安装完成了。</p><h3 id="2-2-使用Ollama客户端自带的下载按钮"><a href="#2-2-使用Ollama客户端自带的下载按钮" class="headerlink" title="2.2 使用Ollama客户端自带的下载按钮"></a>2.2 使用Ollama客户端自带的下载按钮</h3><p>如上面的图，选择你想要的模型，点击下载按钮，注意不是一朵云形状的那个，等待下载成功，选择那个模型。</p><hr><p>  全文完</p>]]>
    </content>
    <id>https://xjhjtz.github.io/2026/02/18/ollamaai/</id>
    <link href="https://xjhjtz.github.io/2026/02/18/ollamaai/"/>
    <published>2026-02-18T03:58:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p> 最近想要在本地部署AI大模型，我经过深思熟虑后决定使用Ollama客户端，主要是它拥有便捷的图形化界面，但是我发现，客户端原生的选择模型界]]>
    </summary>
    <title>(教程向)在Ollama客户端中安装AI模型</title>
    <updated>2026-07-20T13:49:13.759Z</updated>
  </entry>
  <entry>
    <author>
      <name>xjhjtzac</name>
    </author>
    <category term="闲聊/杂谈" scheme="https://xjhjtz.github.io/categories/%E9%97%B2%E8%81%8A-%E6%9D%82%E8%B0%88/"/>
    <category term="Markdown" scheme="https://xjhjtz.github.io/tags/Markdown/"/>
    <category term="Blogging" scheme="https://xjhjtz.github.io/tags/Blogging/"/>
    <content>
      <![CDATA[<h3 id="说点什么……"><a href="#说点什么……" class="headerlink" title="说点什么……"></a>说点什么……</h3><p>你好！这是我的第一篇文章，这个博客还在开发中。<br>最近很纠结大疆pocket3和影石X5选哪个。</p>]]>
    </content>
    <id>https://xjhjtz.github.io/2026/02/12/my-first-blog/</id>
    <link href="https://xjhjtz.github.io/2026/02/12/my-first-blog/"/>
    <published>2026-02-12T05:31:21.000Z</published>
    <summary>
      <![CDATA[<h3 id="说点什么……"><a href="#说点什么……" class="headerlink" title="说点什么……"></a>说点什么……</h3><p>你好！这是我的第一篇文章，这个博客还在开发中。<br>最近很纠结大疆pocket3和影石X5选哪个。</p>]]>
    </summary>
    <title>我的第一篇文章......</title>
    <updated>2026-07-20T13:49:13.766Z</updated>
  </entry>
</feed>
