java - 关于位运算的判断 求大神看一下代码 遇到个有点奇怪的事

查看:81
本文介绍了java - 关于位运算的判断 求大神看一下代码 遇到个有点奇怪的事的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

String string=Integer.toBinaryString(11);
            a=string.toCharArray();
            length=a.length;
            for (int i = 0; i < a.length; i++) {
                System.out.println(a[i]);
            }
            System.out.println("right to one "+string+" string's length"+string.length());
            /*for (int i = 0; i < a.length; i++) {
                System.out.println(a[i]);
            }*/
            if (length==4) {
                if (a[1]==1) {
                    if (a[2]==1) {
                        if (a[3]==1) {
                            System.out.println("十字键一定key  LR 一定是key");
                        }else {
                            System.out.println("十字dpad   LR一定key");
                        }
                    }else {
                        if (a[3]==1) {
                            System.out.println("十字--touch  LR一定key");
                        }else {
                            System.out.println("LR must key");
                        }
                    }
                }else {
                    
                    System.out.println("a[2]"+a[2]);
                    if (a[2]==1) {
                        if (a[3]==1) {
                            System.out.println("十字一定key  LR touch");
                        }else {
                            System.out.println("十字dpad  LR  touch");
                        }
                    }else {
                        if (a[3]==1) {
                            System.out.println("十字--touch  LR--touch");
                        }else {
                            System.out.println("是不是这里LR--touch");
                        }
                    }
                }
            }

传进去的是11 照理说最后输出应该是 十字一定key LR touch 可是最后偏偏输出的是 是不是这里LR--touch 上边if中输出的a[2] 输出也是1 啊 为什么在if判断中直接给跳过了呢 这是怎么回事啊 还有我在if(a[1]==1)的else改成 else if(a[1]==0) 这段代码就不会执行else if(a[1]==0)这一句 直接停止了

解决方案

把所有a[x]==1的比较改为a[x]=='1'1'1'不是一回事。

这篇关于java - 关于位运算的判断 求大神看一下代码 遇到个有点奇怪的事的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆