当前位置: 首页 > 面试题库 >

为什么Java八进制转义数最多只能达到255?

夏侯航
2023-03-14
问题内容

Java语言规范规定的内部字符串逃逸是“正常的” C的像\n\t,但他们还指定八进制转义从\0\377。具体而言,JLS指出:

OctalEscape:
    \ OctalDigit
    \ OctalDigit OctalDigit
    \ ZeroToThree OctalDigit OctalDigit

OctalDigit: one of
    0 1 2 3 4 5 6 7

ZeroToThree: one of
    0 1 2 3

表示类似的东西\4715是非法的,尽管它在Java字符范围内(因为Java字符不是字节)。

Java为什么有此任意限制?您如何指定超过255个字符的八进制代码?


问题答案:

纯粹出于历史原因,Java完全支持八进制转义序列。这些转义序列起源于C(或者可能是C的前身B和BCPL),在PDP-7这样的计算机统治地球的时代,许多编程都是通过汇编或直接用机器代码完成的,八进制是首选的数字用于编写指令代码的基础,并且没有Unicode,只有ASCII,因此三个八进制数字足以表示整个字符集。

到Unicode和Java出现时,八进制几乎已经让位给十六进制作为首选数字基,而十进制则无法做到。因此,Java的\u转义序列采用十六进制数字。支持八进制转义序列只是为了使C程序员感到舒适,并使将n粘贴的字符串常量从C程序复制到Java程序变得容易。

查看这些链接以了解历史琐事:

http://en.wikipedia.org/wiki/Octal#In_computers


http://en.wikipedia.org/wiki/PDP-11_architecture#Memory_management



 类似资料:
  • 本文向大家介绍如何将小数转换为八进制?,包括了如何将小数转换为八进制?的使用技巧和注意事项,需要的朋友参考一下 十进制是公众最熟悉的数字系统。它是基数10,只有10个符号-0、1、2、3、4、5、6、7、8和9。而八进制是表示数字的数字系统之一。它是基数8,只有8个符号-0、1、2、3、4、5、6和7。 从十进制转换为八进制数字系统 有多种直接或间接的方法可以将十进制数转换为八进制数。在间接方法中

  • 本文向大家介绍如何将八进制转换为二进制?,包括了如何将八进制转换为二进制?的使用技巧和注意事项,需要的朋友参考一下 八进制数是基数为8的数字系统之一,这意味着只有8个符号−0、1、2、3、4、5、6和7。而二进制数是数字系统、网络和计算机专业人员最熟悉的数字系统。基2只有2个符号−0和1,这些数字可以分别用off和on表示。 从八进制转换为二进制数制 将八进制数转换成二进制数有多种直接或间接的方法

  • 本文向大家介绍Java 程序实现八进制转换为二进制,十进制,十六进制,包括了Java 程序实现八进制转换为二进制,十进制,十六进制的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个八进制数字。要将八进制转换为其他进制,例如二进制,十六进制等,Java代码如下: 示例 输出结果 一个名为Demo的类包含一个名为“base_convert”的函数。此函数将整数从源基解析为目标基,将其转换为字符串

  • 问题内容: 我正在使用存储在配置文件中的文件掩码来更改文件的权限。由于os.chmod()需要八进制数,因此我需要将字符串转换为八进制数。例如: 在明显地尝试创建从0000到0777的每个八进制数并将其放入以字符串版本作为排队的字典中之后,我想到了以下内容: 有没有更简单的方法可以做到这一点? 问题答案: 您是否刚刚尝试将基数8指定为: 例:

  • Python3 实例 以下代码用于实现十进制转二进制、八进制、十六进制: # -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 获取用户输入十进制数 dec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec

  • 主要内容:二进制数、八进制数和十六进制数的表示,二进制数、八进制数和十六进制数的输出C语言中的整数除了可以使用十进制,还可以使用二进制、八进制和十六进制。 二进制数、八进制数和十六进制数的表示 一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式。但是,表示一个二进制、八进制或者十六进制数字就不一样了,为了和十进制数字区分开来,必须采用某种特殊的写法,具体来说,就是在数字前面加上特定的字符,也就是加前缀。 1) 二进制 二进制由 0 和 1 两个数字组成,使用时必须以