7

我知道这不完全是一个编程问题,但它与我的主题有关。你如何在文本中表示不同的数字系统?(通过文本我的意思是能够以适当的速度输入,而不是从另一个程序复制粘贴它。)例如,如果我有一个以 2 为底的数字,我该如何输入它,以便其他人可以理解它是一个以 2 为底的数字。在纸上,您可以执行 (1001)2 之类的操作,其中 2 是一个小索引。您是否必须在 2 之前键入一些特定符号,以便其他人将其理解为下标?(求幂使用符号 ^ 表示。)或者它只是随机的并且其中不存在标准?

4

5 回答 5

4

许多编程语言的约定是

0b1001

其中“b”表示二进制。其他约定包括十六进制以 0x 开头,八进制仅以 0(后跟其他数字)开头。

于 2010-09-21T19:39:40.430 回答
3

对于十六进制,您可以在它前面加上0x.

0xFF

对于二进制,一个0b

0b101

对于八进制,一个0o

0o44

或者,更明确一点?

dec(123)
hex(0AF)
bin(101)
oct(111)
于 2010-09-21T19:44:17.720 回答
2

我看到的约定是,就像插入符号表示上标(对于求幂)一样,下划线表示下标。因此,将示例转换为 ASCII 的最“字面”方式是 1001_2。不过,我同意 JacobM 的观点;0b 前缀是明确的,不太可能被误解。

于 2010-09-21T19:44:43.023 回答
0

我认为这在很大程度上取决于您最终要如何/为什么/要对数据做什么。

对我来说,使用 ^ 是合乎逻辑的,因为它可以快速输入,但是不熟悉该符号的人可能会错误地解释它。

于 2010-09-21T19:33:27.087 回答
0

基础的符号因编程语言而异(正如我在对这个问题的评论中所说的那样)。

  • 十进制表示法往往是默认值(没有特定的表示法)。
  • 十六进制往往带有前缀#or0x或使用h后缀: 0xA0,#A0A0h.
  • 一些语言使用0前缀来表示八进制表示法(例如0777)。
  • 二进制符号不太常见(通常使用十六进制,因为它使符号更紧凑,最终使用正确的八位字节填充)。但是,您可以使用0b1010or 1010b。同样,这取决于语言以及编译器是否支持它。

以上所有内容都取决于编程语言。如果它只是用于以文本形式编写,那么这些约定中的任何一个都应该这样做。当然,如果你正在写一本书,不要改变你在中间使用的约定......

于 2010-09-21T19:46:01.600 回答