【发布时间】:2018-01-31 20:47:10
【问题描述】:
在将C字符串转换为Pascal字符串时,为什么原始字符串的长度应该小于或等于127而不是256?我知道无符号整数的范围为 0~256,有符号的整数范围为 -128~127,但 Pascal 字符串的第一个字符不是无符号的吗?
【问题讨论】:
-
I understand that an unsigned int ranges from 0~256..很可能,更广泛。 -
谁说 127 或更少?维基百科说 255 en.wikipedia.org/wiki/String_(computer_science)#Length-prefixed
-
PC 上常见的 Pascal 早期实现存储了前面有单字节长度的字符串(这是无符号的,因此字符串的长度可以从 0 到 255)。这不是语言本身的限制。
-
“Pascal 字符串”不是标准化的,每个谈论 Pascal 字符串的人都在谈论一些稍微不同的东西。 我的 Pascal 字符串有 4 个字节大小。
-
你从哪里得到这个数字 127?我不知道任何具有该限制的实现,除非您指的是所谓的计数字符串,但这些具有固定的、明确声明的大小,例如
var x: string[31],大小可以是 1 到 255 之间的任何值。