字符串、整数、数据类型
Strings, integers, data types
经过几年编写供自己使用的代码,我正在努力理解它的真正含义。
a = "Foo"
b = ""
c = 5
d = True
a
- 字符串变量。 "Foo"
(带引号)- 字符串文字,即字符串数据类型的实体。
b
- 字符串变量。 ""
- 空字符串。
c
- 整型变量。 5
- 整数文字,即整型数据类型的实体。
d
- 布尔变量。 True
- 布尔值,即布尔数据类型的实体。
问题:
- 我的理解对吗?
- 看来
5
是整型字面量,是整型数据类型的实体。 "Integer" 和 "integral":为什么我们在这里使用不同的词?
什么是"string"和"integer"?
据我从维基百科了解到,"string" 和 "integer" 与 string/integer 文字或数据类型不同。换句话说,有 3 对或项:
- 字符串文字,整数文字
- 字符串数据类型,整数数据类型
- 字符串,整数
首先,字面值是任何在代码中字面出现的值,例如"hello"
是一个字符串字面量,123
是一个整数字面量等。对比例如:
int a = 5;
int b = 2;
int c = a + b;
a
和 b
具有分配给它们的文字值,但 c
没有,它具有分配给它的计算值。
对于任何文字值,我们都用它的数据类型来描述文字值(如第一句中所示),例如"string literal" 或 "integer literal".
现在数据类型是指计算机,或者计算机上的软件运行如何解释二进制文件一些数据的价值。对于大多数类型的数据,字节的解释通常在标准中定义。例如,utf-8
是一种解释字符串内部(二进制)值的 字节 的方法。有趣的是,字符串的实际字节被视为无符号的 8 位整数。在 utf-8
中,这些整数的值以各种方式组合在一起,以确定在数据中遇到这些值时应在屏幕上显示哪个字形或字符。 utf-8
是一种 variable-byte-length 编码,每个字符可以有 1 到 4 个字节(8 到 32 位)。
对于数字,尤其是整数,实现可能会有所不同,但大多数表示使用四个字节,顺序为最高有效字节在前,第一个字节的第一位作为符号,带符号整数,或第一位只是无符号整数的最高有效位。这被称为 multi-byte 整数中字节的 big-endian 排序。还有 little-endian 编码,整数原则上可以使用任意数量的字节,但最典型的实现是 1、2、4,有时是 8,其中 bit-wise 你分别有 8、16、32 或 64。对于不属于这些大小的整数大小,通常需要自定义实现。
对于浮点数,它变得有点棘手。浮点数有一个通用标准,称为 IEEE-754 which describes how floats are encoded. Likewise for floats, there are different sizes and variations, but primarily we use 16, 32, 64 and sometimes 24-bit in some mobile device graphics implementations. There are also extended precision floats,它使用 40 或 80 位。
经过几年编写供自己使用的代码,我正在努力理解它的真正含义。
a = "Foo"
b = ""
c = 5
d = True
a
- 字符串变量。"Foo"
(带引号)- 字符串文字,即字符串数据类型的实体。b
- 字符串变量。""
- 空字符串。c
- 整型变量。5
- 整数文字,即整型数据类型的实体。d
- 布尔变量。True
- 布尔值,即布尔数据类型的实体。
问题:
- 我的理解对吗?
- 看来
5
是整型字面量,是整型数据类型的实体。 "Integer" 和 "integral":为什么我们在这里使用不同的词? 什么是"string"和"integer"?
据我从维基百科了解到,"string" 和 "integer" 与 string/integer 文字或数据类型不同。换句话说,有 3 对或项:
- 字符串文字,整数文字
- 字符串数据类型,整数数据类型
- 字符串,整数
首先,字面值是任何在代码中字面出现的值,例如"hello"
是一个字符串字面量,123
是一个整数字面量等。对比例如:
int a = 5;
int b = 2;
int c = a + b;
a
和 b
具有分配给它们的文字值,但 c
没有,它具有分配给它的计算值。
对于任何文字值,我们都用它的数据类型来描述文字值(如第一句中所示),例如"string literal" 或 "integer literal".
现在数据类型是指计算机,或者计算机上的软件运行如何解释二进制文件一些数据的价值。对于大多数类型的数据,字节的解释通常在标准中定义。例如,utf-8
是一种解释字符串内部(二进制)值的 字节 的方法。有趣的是,字符串的实际字节被视为无符号的 8 位整数。在 utf-8
中,这些整数的值以各种方式组合在一起,以确定在数据中遇到这些值时应在屏幕上显示哪个字形或字符。 utf-8
是一种 variable-byte-length 编码,每个字符可以有 1 到 4 个字节(8 到 32 位)。
对于数字,尤其是整数,实现可能会有所不同,但大多数表示使用四个字节,顺序为最高有效字节在前,第一个字节的第一位作为符号,带符号整数,或第一位只是无符号整数的最高有效位。这被称为 multi-byte 整数中字节的 big-endian 排序。还有 little-endian 编码,整数原则上可以使用任意数量的字节,但最典型的实现是 1、2、4,有时是 8,其中 bit-wise 你分别有 8、16、32 或 64。对于不属于这些大小的整数大小,通常需要自定义实现。
对于浮点数,它变得有点棘手。浮点数有一个通用标准,称为 IEEE-754 which describes how floats are encoded. Likewise for floats, there are different sizes and variations, but primarily we use 16, 32, 64 and sometimes 24-bit in some mobile device graphics implementations. There are also extended precision floats,它使用 40 或 80 位。