开始之前
欢迎使用十亿伏特 mod,本文档默认您已熟悉生存战争原版的电路运作规则,且熟练使用大部分电路元件,如果您还未掌握原版电路,建议您学习后再使用本 mod
如果您已经掌握原版电路,请先阅读下面内容,之后可按兴趣随意阅览本文档
十亿伏特 和 十亿伏特 · 扩展的关系与区别
十亿伏特 mod
只提供更大位宽的原版已有元件,及其变体版本,并非常克制地提供了少量有用的基础元件,对于只是想要更大位宽的玩家,可以选择只使用该 mod
其他 mod 想使用十亿伏特的更大位宽,一般只需要添加该 mod 作为依赖十亿伏特 · 扩展 mod
则是开发者保持原版电路精神,为进一步扩展电路玩法而开发了大量全新元件,大部分元件的使用需要玩家对二进制表示法有较深的理解,本文档含该 mod
需要十亿伏特 mod
作为前置,不能单独使用
支持的生存战争 API 版本
本 mod 当前最新正式版支持的 API 版本为 1.72,可从 此处下载。
还在使用 1.0 版本的本 mod?
本 mod 1.0 版本支持的 API 版本为 1.53,可从 此处下载。
帮助包 mod
如果你对元件还不熟悉,或希望在游戏内直接查看更详细的元件说明,可以额外安装十亿伏特 · 帮助包 mod
,这样游戏内部分复杂元件的方块说明就会替换为相应文档的截图
除
十亿伏特 · 扩展 mod
和十亿伏特 · 帮助包 mod
外,当前还有数个前置包含十亿伏特 mod
的 mod,可前往 依赖者清单 查看
32 位位宽的意义
十亿伏特和原版电路最大的区别是电压位宽,原版有 4 位共 16 个电压级别(0 ~ 1.5V),十亿伏特有 32 位共 232 个(0 ~ 232-1V)
什么是位宽?
4 车道的公路,一次只能通过 4 辆车,而 32 车道的公路,一次能通过 32 辆车
对于电路而言也是同理,原版一次只能传输 4 个开关量,而十亿伏特可以一次传输 32 个开关量,这里的多少个开关量,就是多少个二进制数 0 或 1,或者叫做多少个二进制位,简称多少位。
一个标准的电路板有 5 个端口,原版电路板的最大位宽为 5 * 4 = 20 位,而十亿伏特的有 5 * 32 = 160 位
表示正整数
- 1 位的位宽只能表示 0 或 1
- 2 位的位宽可以表示 0、1、2、3,如下表所示
开关 | 开 1 | 关 0 |
开 1 | 二进制 11 十进制 3 | 二进制 10 十进制 2 |
关 0 | 二进制 01 十进制 1 | 二进制 00 十进制 0 |
- 3 位的位宽可以表示 0 ~ 7,每 1 位的作用如下
- 如果从右往左第 1 位为 1,则 + 1(20),否则 + 0(下同)
- 如果第 2 位为 1,则 + 2(21)
- 如果第 3 位为 1,则 + 4(22)
- 以此类推,如果第 m 位为 1,则 + 2m-1
n 位位宽可以表示 0 ~ 2n-1 的正整数
📝 第 n 位、最低位、最高位
本文档的第 n 位将默认是对于原始二进制数,从右往左,从 1 开始数的
最低位即最右边的第 1 位,最高位即最左边的那位
💡 关于进制的表示
本文档如果没有特别标明,默认进制为十进制
如果数字前面写有 0x
,则代表这个数是十六进制数
表示负数
我们可以让最高的第 n 位不表示 + 2n-1,转而表示 *( -1 ),这里用3位来举例
进制 | 值 | |||||||
---|---|---|---|---|---|---|---|---|
原始二进制 | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
十进制 | 0 | 1 | 2 | 3 | -0 | -1 | -2 | -3 |
这里的第 3 位即这个数的 符号位
📝 说明
这是负数在二进制表示中的原码模式,也是十亿伏特主要采用的负数表示模式,除此之外还有反码、补码,可自行了解
💡 提示
表格过长不能完整查看?请尝试左右拖动,或横屏查看
表示小数
在 表示正整数 中提到
如果第 m 位为 1,则 + 2m-1
我们把它稍加改变,在 -1 的后面再减 1 个 i,现在让我们来试验一下效果,以总位数为 4,i 为 2 为例:
- 如果从右往左数第 m 位为 1,则
- 部分表:
原始二进制 | 十进制 |
---|---|
0000 | 0 |
0001 | |
0010 | |
0011 | |
…… | …… |
1001 | |
…… | …… |
可见,我们实现了一个小数点在第 2、3 位之间的二进制小数表示法
📝 说明
这是小数的在二进制表示中的定点模式,也是十亿伏特主要采用的小数表示模式,除此之外还有浮点数,可自行了解
组合表示
如果仅是 4 位位宽,能够表示的数真的很少,但到了 32 位,不仅可以随心所欲地使用各种数字表示模式,还能在一个端口组合使用多种模式,例如:
第 n 位 | 第16位 | 第 4 ~ 15 位 | / | 第 1 ~ 3位 |
---|---|---|---|---|
作用 | 符号位 | 整数位,共12位 | 小数点 | 小数位,共3位 |
即可表现一个精度为
范围为
的数
小结
在十亿伏特,当使用 31 位来作为 存储器 的索引,可以整整存储 21亿4748万3648 个 32 位数,总容量为 922亿亿3372万亿0368亿5477万5808 位,是原版的 2251万亿7998亿1368万5247 倍,如果全部存满,你需要拥有 1152.9PiB 内存
通过组合使用多种二进制表示模式,十亿伏特的 复杂活塞 可以通过电压控制其延伸长度、推拉个数(最大 256 格)等参数,大规模使用时不再需要手动打开对话框调整;告示牌 甚至可以通过5个端口接收10组参数,实现了悬浮显示文字、从指定存储器读取字符串的功能……
总之,位宽的提升不仅带来了数据传输效率的提升,还给电路板功能带来了全新可能,具体区别详见 原版的变体
📝 说明
十亿伏特存储器使用 PNG 格式存储数据,其内部索引的数据类型是 32 位 int
,其符号位未使用,导致十亿伏特的存储器的最大索引也是 31 位
如果我不喜欢……
如果你不喜欢或无法理解十亿伏特的变体版,本 mod 为修改较大的元件提供了相应的经典版,它们与原版使用方法和效果完全相同
对于没有经典版的元件,你只需要专注于它较低的4位,即可实现与原版一致的效果
再退一步,本 mod 还提供了变压器,可以将十亿伏特电压转换为原版电压,即可操作原版元件,也可以反过来
反馈渠道
如果你遇到任何 bug 或不懂的,或想提出修改建议,可通过以下渠道反馈