十进制转换成十六进制

Euray_Kylin 2013-10-05 08:55:24

public class DtoH {
public static void main(String[] args) {
toHex(60);
}
public static void toHex(int num) {
for(int x=0; x<8; x++) {
int temp = num & 15;
if(temp>9)
System.out.println((char)(temp-10+'A')); //????
else
System.out.println(temp);
num = num >>> 4;
}
}
}

以上是一个十进制转换十六进制的小程序,把60这个十进制数转换成十六进制。
其中
temp-10+'A'
这段代码是什么意思呢?
我知道输出是十六进制的'C',但是想问下这个代码涉及到什么知识点?
难道10在十六进制是‘A’,2+'A'就等于'C'了?
...全文
140 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Euray_Kylin 2013-10-05
  • 打赏
  • 举报
回复
引用 4 楼 udbwcso 的回复:
不同数据类型的数据参与运算,数据类型要强制转换,转换的方向是 (unsigned)char,(unsigned)short->int->unsigned->long->unsigned long->float->double
哦,这么详细啊,谢谢了
尘缘udbwcso 2013-10-05
  • 打赏
  • 举报
回复
不同数据类型的数据参与运算,数据类型要强制转换,转换的方向是 (unsigned)char,(unsigned)short->int->unsigned->long->unsigned long->float->double
尘缘udbwcso 2013-10-05
  • 打赏
  • 举报
回复
char t = 2 + 'A'; t = 'C'; 2 + 'A' = 67
Euray_Kylin 2013-10-05
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
将10、11、12、13、14、15对应输出成A、B、C、D、E、F
关于 2+'A'='C'; 我还是有个疑问,根本不是同类型的怎么能简单的相加呢
rumlee 2013-10-05
  • 打赏
  • 举报
回复
将10、11、12、13、14、15对应输出成A、B、C、D、E、F

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧