gpt4 book ai didi

erlang - 为什么erlang整数使用28位?

转载 作者:行者123 更新时间:2023-12-02 10:01:36 25 4
gpt4 key购买 nike

今天当我读Erlang Doc关于效率指南高级章节时

small integer:
1 word
On 32-bit architectures: -134217729 < i < 134217728 (28 bits)
On 64-bit architectures: -576460752303423489 < i < 576460752303423488 (60 bits)

big integer:
3..N words

(抱歉,我尝试在 markdown 中使用表格,但它不起作用,请原谅我,这是我的第一个问题)

为什么使用28位或60位?其余4位的作用是什么?而小或大是由erlang VM判断的?32位架构是指32位系统还是32位CPU?我的英语很差,而且我是 Erlang 新手。谢谢。

最佳答案

剩下的四位用于标识数字以外的类型,例如列表、元组、pid等。

另一种处理方法是在每个值前面添加一个额外的字节或单词,以识别它的类型。但是,将值与类型说明符打包在一起意味着许多值可以放入一个单词中。

VM 是 32 位还是 64 位取决于它的编译方式。当您启动 Erlang 时,如果它被编译为 64 位程序,您将在横幅中看到 [64-bit]:

Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

您还可以使用erlang:system_info(wordsize)进行检查:

1> erlang:system_info(wordsize).
8

在本例中,字大小为 8 字节,即 64 位。

关于erlang - 为什么erlang整数使用28位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25135972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com