【发布时间】:2013-02-11 16:15:25
【问题描述】:
我一直在尝试了解八进制数的 printf 功能。 如果我把代码写成:
int main()
{
char *s = "\123";
printf("%s",s);
}
它给了我一个输出 S 实际上是正确的,因为 S 的 ASCII 是八进制的 123。 但我的问题是,编译器如何识别要从八进制转换的数字序列。例如:
char *s = "\123456"
将输出为 S456
八进制转换最多需要3个数字吗???
八进制数是否有最大限制(最多 3 位八进制数为 777)
现在因为最多有 255 个 ascii 字符(八进制 377),所以当我尝试打印 777 时,它会打印一个典型的 ascii 字符,这可能是因为没有分配给这个数字的 ascii。 这个功能也依赖于编译器/操作系统吗???
自从我在这里提出第一个问题以来,我希望非常清楚:-)
【问题讨论】:
-
只有 128 个 ASCII 字符。
标签: c