黑马程序员技术交流社区

标题: 【小强贴】之前编译没有出现乱码,这会总有乱码,求解... [打印本页]

作者: 心灵的一扇窗    时间: 2014-3-13 20:26
标题: 【小强贴】之前编译没有出现乱码,这会总有乱码,求解...
本帖最后由 心灵的一扇窗 于 2014-3-14 20:15 编辑

这是源代码:


这是编译结果:


作者: 水蓝    时间: 2014-3-13 21:44
能把源代码贴出来吗?我这边照着敲了一遍,没问题
作者: 心灵的一扇窗    时间: 2014-3-14 12:31
水蓝 发表于 2014-3-13 21:44
能把源代码贴出来吗?我这边照着敲了一遍,没问题

class ArrayTest7{
        public static void main(String[] args){
                toHex(60);
        }
               
                // 0 1 2 3 4 5 6 7 8 9 A  B  C  D  E  F------这是十六进制的十六个元素
                // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15------对应数组的角标
                // 因此可以先建立一个表,用数组将这十六个元素存储起来,然后根据num & 15的结果去查表,
                // 这样可以顺利地转换为十六进制,比temp -10 + ‘A’更容易想到
               
       
        public static void toHex(int num){
                char[] chs = new char[]{'0','1','2','3',
                                                                '4','5','6','7',
                                                                '8','9','A','B',
                                                                'C','D','E','F'};
                for(int i = 0 ;i < 8;i ++){
                        int temp = num & 15;
                        System.out.println(chs[temp]);
                        num = num >>> 4;
                }
        }
}
作者: 水蓝    时间: 2014-3-14 12:46
心灵的一扇窗 发表于 2014-3-14 12:31
class ArrayTest7{
        public static void main(String[] args){
                toHex(60);

刚刚拷贝出来,验证一下,运行还是正常的。

因为错误报在注释的位置,对吧。
因此,建议你先把注释删掉。运行试试。
因为我这边以前遇到过,注释前空白部分中有非英文字符,但是在代码中显示为空白的情况。
编译会报类似错,查起来有点莫名其妙哈。

或者你也可以吧源文件贴出来。
作者: 心灵的一扇窗    时间: 2014-3-14 20:15
水蓝 发表于 2014-3-14 12:46
刚刚拷贝出来,验证一下,运行还是正常的。

因为错误报在注释的位置,对吧。

我终于知道了,编辑前必须设置字符编码为ASCII,我无意中设置了UTF-8,汉字注释在编译才出现了乱码,谢谢你的回复!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2