可打印字符是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可打印字符是啥意思?相关的知识,希望对你有一定的参考价值。

就是在显示器上输出能够看得见的。

    目前使用最广泛的西文字符集及其编码是 ASCII 字符集和 ASCII 码( ASCII 是 American Standard Code for Information Interchange 的缩写),它同时也被国际标准化组织( International Organization for Standardization, ISO )批准为国际标准。

    基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,另外还有 32 个控制字符。标准 ASCII 码使用 7 个二进位对字符进行编码,对应的 ISO 标准为 ISO646 标准。

有些 ASCII 字符是不可打印的。例如退格、另起一行、警报等。C 语言提供了两种方法来表示这种不可打印字符。

    第一种方法是使用 ASCII 编码。例如,ASCII 编码中,7 用于表示警报:

        char beep = 7;

    第二种方法是使用特殊符号序列,也就是所谓的转义字符(escape sequences)。

最后一行就是是否可打印

参考技术A 目前使用最广泛的西文字符集及其编码是 ASCII 字符集和 ASCII 码( ASCII 是 American Standard Code for Information Interchange 的缩写),它同时也被国际标准化组织( International Organization for Standardization, ISO )批准为国际标准。 基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,另外还有 32 个控制字符。标准 ASCII 码使用 7 个二进位对字符进行编码,对应的 ISO 标准为 ISO646 标准。本回答被提问者采纳

前面为零的整数是啥意思,如何打印?

【中文标题】前面为零的整数是啥意思,如何打印?【英文标题】:What does an integer that has zero in front of it mean and how can I print it?前面为零的整数是什么意思,如何打印? 【发布时间】:2016-06-01 23:15:26 【问题描述】:
class test
  public static void main(String args[])
     int a = 011;
     System.out.println(a);
  

为什么我得到的是9 而不是011

我怎样才能得到011 作为输出?

【问题讨论】:

String.format("%02d", a) 011 是以 8 为底的文字,因此以 10 为底,您得到 9=(8^1+8^0)。更多详情见***.com/a/7218803/5166645 以 0 开头的数字称为十六进制数字。 @SmashCode 不完全正确。在 Java 中以“0”开头的数字称为 octal,以 8 为基数(octa- 是 8 的希腊前缀)。以“0x”开头的数字称为 hexadecimal(简称 hex),以 16 为基数(hexa- 是 6 的希腊前缀,而 deci- 是 10 的拉丁前缀)。常规数字被称为十进制,因为它们是以 10 为底的。八进制和十六进制很有用,因为它们比十进制更容易转换为二进制。 【参考方案1】:

JLS 3.10.1 描述了 4 种定义整数的方法。

整数字面量可以用 decimal(基数 10)、hexadecimal(基数 16)、octal(基数 8)或二进制(以 2 为底)。

八进制数字由一个数字 0 后跟一个或多个数字 0 到 7 ...

组成

十进制数字可以是单个数字 0,表示整数 0,也可以由 1 到 9 的数字组成,可选地后跟 0 到 9 的一个或多个数字 ...

总而言之,如果您的整数文字(即011)以 0 开头,那么 java 将假定它是一个 octal notation。

解决方案:

如果您希望您的整数保持值 11,那么不要花哨,只需分配 11。毕竟,符号不会改变值的任何内容。我的意思是,从数学的角度来看 11 = 011 = 11,0。

int a = 11;

格式仅在您打印时(或将 int 转换为 String)时才重要。

String with3digits = String.format("%03d", a);
System.out.println(with3digits);

格式化程序"%03d" 用于添加前导零。

或者,您可以使用 printf 方法在 1 行中完成。

System.out.printf("%03d", a);

【讨论】:

【参考方案2】:

以 0 开头的数字文字被解析为八进制数(即基数 8)。 011 是八进制的 9。

【讨论】:

【参考方案3】:

011 被解释为八进制数。这意味着它以 8 为基数。另请参阅 this SO post。来自 Stuart Cook 接受的答案:

在 Java 和其他几种语言中,以 0 开头的整数文字被解释为八进制(以 8 为基数)数量。

Base 10 中的数字: 100 秒、10 秒、1 秒

Base 8 中的数字: 64s、8s、1s

所以011 被解释为 8+1=9

【讨论】:

以上是关于可打印字符是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

控制字符是啥

条码类型code128是啥意思

Java 9 的版本字符串方案中的第 4 个数字是啥意思?

ruby 2.1.2中的“#$e”是啥意思

%[^\n] 在 scanf() 格式字符串中是啥意思

C#中的“定义字符串变量”是啥意思。