作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我编写了以下代码,但是 o/p 不是预期的?有人指导我吗?
问题:编写一个示例程序来声明一个十六进制整数并使用显式类型转换将其转换为一个字符?
class hexa
{
public static void main(String ar[])
{
int hex=0xA;
System.out.println(((char)hex));
}
}
请告诉我: 为什么输出有差异
/*code 1*/
int hex = (char)0xA;
System.out.println(hex);
/*code 2*/
int hex = 0xA;
System.out.println((char)hex);
最佳答案
int hex = 0xA;
System.out.println( (char)hex );
十六进制值 0xA(或十进制 10)在 ASCII 中是“\n”(换行字符)。
因此输出。
编辑(感谢 halex 在评论中提供更正:
int hex = (char) 0xA;
System.out.println(hex); //here value of hex is '10', type of hex is 'int', the overloaded println(int x) is invoked.
int hex = 0xA;
System.out.println((char) hex); //this is equivalent to System.out.println( '\n' ); since the int is cast to a char, which produces '\n', the overloaded println(char x) is invoked.
关于java - 使用显式类型转换将十六进制整数转换为字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12767439/
我是一名优秀的程序员,十分优秀!