首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑马软件工程师—位运算符练习 十进制的十六进制表现形式 及三元运算符

2013-01-28 
黑马程序员—位运算符练习 十进制的十六进制表现形式 及三元运算符------- android培训、java培训、期待与您

黑马程序员—位运算符练习 十进制的十六进制表现形式 及三元运算符

------- android培训、java培训、期待与您交流! ----------

?

class weiyi //练习2 位移的应用 十进制的十六进制表现形式 及三元运算符{public static void main(String[] args) {//System.out.println(Integer.toBinaryString(60));//System.out.println(Integer.toHexString(60));/*二 问题:如何获得60的十六进制位的表现形式 ?思路:先获取60的二进制形式的最低4位,通过&15(即二进制位 1111 )*/int num = 60;int n1 = num & 15;//System.out.println((char)(n1-10+'A'));/*结果为c 即答案的倒数第一位(后期有更简单的方法) n1-10是为了看出最后一位比10多几位,因为16进制满9就进了 没有10,所以利用ASCII码表的字符具有数字代表的功能得出最低位应该是什么 如下:0-9 'A' 'B' 'C' 'D' 'E' 'F'65   66  6710   11  12  13  14  1512 - 10 = 2 + 'A' = (char)67;*/    //接着 要获取下一组四位,则将60右移4位。int temp = 60>>> 4;/*为什么要用无符号右移 因为如果出现负数的情况 则右移后高位会被1补齐 则变成死循环了 所以要用无符号右移*///接着 对temp的值进行最低四位的获取。int n2 = temp & 15;//System.out.println(n2);//结果为3 即答案的倒数第二位  最终答案为60=3c/*上述的 int n1 = num & 15;System.out.println((char)(n1-10+'A')); 中我们实际并不知道n1与9的大小关系 所以应该是这样写 利用马上要学的三元运算符 示例如下:*/int x=3,y;y=(x>1)?100:200;System.out.println("y="+y);//同理 我们可以完善上面的做法System.out.println(n1>9?(char)(n1-10+'A'):n1);/*注意 ? : 与后期的语句相像 因为是运算符 所以一定有结果 而且如果100换成字符型比如说'a' 因为'a'会与200进行运算 所以会自动进行提升 就出现67而不是c的情况了 结果是67了.吼吼...老师说以后自己写一个代码对一个整数进行16进制形式获取的时候,再会讲到*/System.out.println(n2>9?(char)(n1-10+'A'):n2);/*想要知道一个整数的二进制表现形式的时候,也可用上述方法二进制就是& 1    再右移1位八进制就是& 7    再右移3位    十六进制就是&15  再右移4位*/}}

?

热点排行