Octet String是什么意思? Octet和Char有什么区别?

时间:2010-07-08 19:18:24

标签: c

八位字符串和字符有什么区别?如何使用八位字符串?任何人都可以在Octet字符串上写一个小C程序吗?八位字符串如何存储在内存中?

5 个答案:

答案 0 :(得分:12)

标准(等)使用“octet”明确声明他们正在谈论8位组。虽然大多数当前的计算机使用的字节大小也是8位,但情况并非如此。实际上,“字节”的定义相当不明确,对于它确实意味着什么存在相当大的分歧 - 所以当需要精度时通常会避免这种情况。

尽管如此,在典型的计算机上,八位字节与字节相同,八位字节流将以一系列字节存储。

答案 1 :(得分:1)

  • 八位字节是8位字节的另一个字。
  • char通常是8位,但在某些架构上可能是另一种大小。

答案 2 :(得分:1)

一个八位字节是8位意味着要一起处理(因此“八位字节”中的“oct”)。这就是我们这些天说“字节”时的想法。

char基本上是一个字节 - 它被定义为最小的可寻址内存单元,几乎所有现代计算机都与八位字节相同。但是有一些计算机具有9位,16位,甚至36位“字”,这些字符符合该定义的字符。你只需要关心那些计算机(因此,关于char和octet之间的差异),如果你有一个 - 让那些拥有奇怪硬件的人担心如何在其上运行程序。

答案 3 :(得分:0)

八位字节字符串只是一组分组为8的块。这些8个大小的组通常代表字符。 Octet字符串是用于SNMP的基本数据类型。

答案 4 :(得分:-1)

一个字符串曾经是一组八位字节,它是一组8位。

C中的字符串始终是以空值终止的,内存连续的字节集。 在当天,每个字节,一个八位字节,代表一个字符。这就是为什么他们将用于制作字符串的类型命名为 char

ASCII表,从0到127,图形/重音版本从0到255,不再足以在字符串中显示字符,所以有人在为字符表示添加位。来自CS的愚蠢的9比特等等,对于HW家伙的回答“你疯了吗?保持它是内存寻址单元的倍数”,那是当时的字节。 输入宽字符串,即每个字符16位。 在一个WC字符串上,每个字符由2个字节表示...将你的char = 1字节规则放在排水管上。

要保持字符串的确切描述,如果它是一组由8位表示的字符(在地球上,遵循ASCII表,但我去过火星),它是一个“八位字符串”。< / p>

如果它不是“八位字符串”,它可能是也可能不是WC ... Joel对此是nice post