A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Rockray 于 2013-10-5 14:25 编辑
  1. //十进制转换成十六进制
  2. public class DtoH {
  3.     public static void main(String[] args) {
  4.         toHex(60);
  5.     }
  6.     public static void toHex(int num) {
  7.         for(int x=0; x<8; x++) {
  8.             int temp = num & 15;
  9.             if(temp>9)
  10.                 System.out.println((char)(temp-10+'A'));
  11.             else
  12.                 System.out.println(temp);
  13.             num = num >>> 4;
  14.         }
  15.     }
  16. }
复制代码
我是新手,刚开始看自学视频。
以上代码是第04天第09个视频中的,先对如下代码有个疑问
  1. System.out.println((char)(temp-10+'A'));
复制代码
temp-10+'A' 这段代码是什么意思呢?
我知道输出是十六进制的'C',但是想问下这个代码涉及到什么知识点?
难道10在十六进制是‘A’,2+'A'就等于'C'了? 这样规范吗?关于 2+'A'='C';
我还是有个疑问,根本不是同类型的怎么能简单的相加呢?



评分

参与人数 1技术分 +2 收起 理由
黄文伯 + 2 很合适!

查看全部评分

3 个回复

倒序浏览
xh396660787 发表于 2013-10-5 10:25
这是因为在0-15的范围内十六进制中0-9对应的是0-9的字符,10-15分别对应字符A,B,C,D,E,F。
而ascii码中ABCD ...

这么详细啊,我懂了,谢谢啊{:soso_e181:}
回复 使用道具 举报
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~
回复 使用道具 举报
黄文伯 发表于 2013-10-5 14:12
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~ ...

好的,我知道了{:soso_e181:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马