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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 仲伟 中级黑马   /  2013-5-12 11:27  /  2307 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 仲伟 于 2013-5-12 19:49 编辑

char c = 1;
char c1 ='1';
int n =1;
三个数值作比较
System.out.println(c==c1);
System.out.println(c==n);
System.out.println(n==c1);

为什么不一样,我很不明白,最好给我,这三个的二进制码,给我讲讲明白

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

5 个回复

倒序浏览
char c = 1;//这个是ASCII码表中十进制1的对应字符
char c1 ='1';//这个是字符1
int n =1;//这是是十进制1
回复 使用道具 举报
String str ="abcdekka27qoq";
                HashSet hs = new HashSet();
                char[] chars=new char[str.length()];
                for(int i=0;i<str.length();i++){
                        char c1=str.charAt(i);
                        if(c1!=2&&c1!=7){
                                System.out.print(c1+"---");
                        hs.add(str.charAt(i));
                        }
                }
这个if的判断条件怎么正确的呢,我想要数字就想要 字符
回复 使用道具 举报
把if判断语句改成: if(c1!='2' && c1!='7')就行了。不然你那c1代表的是字符,而2代表的是数字。
回复 使用道具 举报
char c1='1';       字符1,对应的ascII码值是49,二进制是00000000 00110001
int n=1;  整数1,二进制为00000000 00000000 00000000 00000001
char c=1; 二进制00000000 00000001
把整数1赋给c,是在将一个大的数据类型变成一个小的数值类型,int占4个8位,char只有2个8位
但是因为1的二进制存储时没有超过两个8位,所以不会损失精度。
所以c==n is true
回复 使用道具 举报
楼上正解,这是我用程序检验的二进制:

结果为:

结果显示c和n的值是一样的,但是因为两个数据类型不同、字节长度不同,数值大小自然也不同,结果只是没有把两值前面的0全部显示出来而已
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马