binary - 计算机如何看到 "big numbers"?

标签 binary computer-science cpu-architecture

今天在类里面,我决定用二进制代码编写日期,但是当考虑如何编写“2015”时,我立即意识到它将是一个大数字:11111011111。我理解每个位是0或1可以占用的空间,而字节符合8位,但只有7位用于写数字(我不知道为什么),而二进制的2015需要7个以上的空格甚至8个,所以占用一个字节以上,那么计算机如何管理大于 255(ASCI 最大数字)的数字,例如在除法中,它们如何除 2 个字节,或者如何使 2 个字节变为 1?

也许我有一个错误的想法,所以我希望你们向社区解释一下这一点(告诉我,我不是唯一有这个疑问的人)。

最佳答案

它们将它们存储在多个字节中,通常是 4 个(32 位算术)或 8 个(64 位算术)。 float 稍微复杂一些,但基本上具有±x·2^y的形式。有时,人们编写自己的类,通过将更大的数字分解为硬件可以处理的 block 来处理它们。您可以像在小学中学到的那样对非常大的数字进行加法,但在基数 4,294,967,295 中:将每一列从右到左相加,如果结果太宽,则进位 1。

有时,数字可以是正数,也可以是负数,您需要使用一位。但有时,这些位仅代表正数。因此,您可以选择能够表示范围 [-128,127] 的字节或表示范围 [0,255] 的字节。

关于binary - 计算机如何看到 "big numbers"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32447823/

相关文章:

r - 如何绘制二元混合效果模型以进行视觉呈现

python - 使用结构解析二进制文件中的数据

java - 对大 O 表示法感到困惑

computer-science - 如何运行雅典娜 |公鸡 |伊莎贝尔远程编码?

java - 我应该如何修复我的代码以便返回正确的输出,即 & 而不是问号?

cpu-architecture - 弗林瓶颈 - 最大加速 2

linux - 为什么 Linux (x86) 的页面大小是 4 KB,这是如何计算的?

ajax - 转换图像数据以在浏览器中呈现图像

binary - base 13 - 银河系漫游指南

c - 现代 CPU 中的分支 "anticipation"