首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以字节为单位的数字65535的大小是多少?

以字节为单位的数字65535的大小是多少?
EN

Software Engineering用户
提问于 2021-08-30 00:35:53
回答 5查看 6.2K关注 0票数 8

正如我所知道的,1字节有256种可能的组合。如果我正确理解它,这应该意味着您可以从数字0-255中显示任何数字,而这个数字将只使用您计算机上存储的1字节。不过,从256个数字到65535个数字中显示一个数字将花费你两个字节的存储空间(如果我理解正确的话)。但是,在向文本文档中输入数字65535并查找其文件大小(关于文本文档的“信息”)之后,我必须看到该文档使用的存储空间实际上是"5字节“。有人知道这是什么原因吗?

EN

回答 5

Software Engineering用户

发布于 2021-08-30 00:58:10

这里可能有几个变量,但65535是5个字符。每个字符1字节=5字节。文本编辑器没有一个数字和代码相同的概念,所以所有东西(在一个基本级别)都存储为一组字符/字符串。

例如,当您编写C#代码时,如下

int number = 65535;

您正在为该数字显式分配4个字节的内存--即使在本例中它只需要2个字节。同样的,你也可以写

ushort number = 65535;

然后只分配两个字节。

但如果你写

string number = "65535";string otherNumber = "65534";string anotherNumber = "95536";都将是相同的大小,并且这个大小与实际的数字无关(除了少数例外)。

当您将东西写入磁盘时,这些东西都会从窗口中消失,因为有许多方法可以压缩/优化存储内容。

票数 8
EN

Software Engineering用户

发布于 2021-08-30 09:04:52

文件包含5字节信息的原因是您输入的文本(字符串) '65535'有五个字符长。

这些字符中的每一个都是非常常见的,一个数字,并且是名为ASCII的臭名昭著字符集的一部分。

ASCII中的每个字符都有1字节长。因此,'65535'是5字节长。

现在,如果您想将整数65535表示为内存中的一个数字,那么从技术上讲,您只需要2位字节,是的。许多编程语言都有特定的数据类型,通常称为UInt16UShort

简而言之,区别在于将数字存储为text (String) vs作为整数存储在内存中。

票数 5
EN

Software Engineering用户

发布于 2021-08-30 12:00:49

数字是一个数学概念,它不是由字节构成的。只有当您要在计算机上表示(或编码)一个数字时,才会使用位或字节,所需的位/字节的数量取决于编码,而编码又取决于要表示的值的范围。

  • 如果您只需要表示单个数字,则不需要对其值进行编码,因此所需的位数实际上为零。
  • 如果您只有几个可能的值,则需要枚举它们,这将花费您的log₂(n)位。例如,如果您只需要0和65535,则可以用一位对任一值进行编码。
  • 如果您需要一系列的数值,这是最有用的数学,您可以使用一种标准的数字类型。使用标准类型的好处是,您可以免费获得它们的所有基本数学函数,直接由CPU或标准库实现。在PC上,C语言中最小的标准类型是uint16_t,它需要两个字节。如果还需要负值,则需要int32_t,它需要4个字节。
  • 最后,如果您需要能够表示数字以外的值(例如,abc),则必须使用字符串。可以表示数字的最简洁的标准编码是ASCII,它在技术上使用7位字符,但大多数计算机无论如何都会将这些字符存储在8位字节中,这会使您的字节数增加到5字节,另外,如果您想使用不同长度的字符串,则需要对字符串的长度进行编码。在某些格式中,字符串以零字节结束(总共6字节),而在另一些格式中,长度本身被编码为数字。
票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/431499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档