在对于进制的变换上,每一个位运算符的操作代码都是不同的。进制之间的转换问题一直困扰着新学的小伙伴们,那么本篇带来的位运算符大家可一定不要错过。针对不同的位运算符,这里给出勒对应的代码解决方法。下面我们就来一起看看如何转换进制的吧。
1.左移运算符:<<
int intValue = 733183670;//随意写一个数 System.out.println("intValue:" + (intValue));//打印intValue System.out.println("intValue左移1位:" + (intValue << 1));//左移1位 System.out.println("intValue左移8位:" + (intValue << 8));//左移8位 //当int类型左移位数大于等于32位操作时,会先求余后再进行移位操作 System.out.println("intValue左移32位:" + (intValue << 32));//求余为32%32=0,相当于左移0位(不移位) System.out.println("intValue左移40位:" + (intValue << 40));//求余为40%32=8,相当于左移8位 System.out.println("intValue左移64位:" + (intValue << 64));//求余为64%32=0,相当于左移0位(不移位) long longValue = 733183670L; System.out.println("longValue:" + (longValue));//打印longValue System.out.println("longValue左移1位:" + (longValue << 1));//左移1位 System.out.println("longValue左移8位:" + (longValue << 8));//左移8位 //当long类型左移位数大于等于64位操作时,会先求余后再进行移位操作 System.out.println("longValue左移64位:" + (longValue << 64));//求余为64%64=0,相当于左移0位(不移位) System.out.println("longValue左移72位:" + (longValue << 72));//求余为72%64=8,相当于左移8位 System.out.println("longValue左移128位:" + (longValue << 128));//求余为128%64=0,相当于左移0位(不移位)
2.右移运算符:>>
int intValue = 733183670;//随意写一个数 System.out.println("intValue:" + (intValue));//打印intValue System.out.println("intValue右移1位:" + (intValue >> 1));//右移1位 System.out.println("intValue右移8位:" + (intValue >> 8));//右移8位 //当int类型右移位数大于等于32位操作时,会先求余后再进行移位操作 System.out.println("intValue右移32位:" + (intValue >> 32));//求余为32%32=0,相当于右移0位(不移位) System.out.println("intValue右移40位:" + (intValue >> 40));//求余为40%32=8,相当于右移8位 System.out.println("intValue右移64位:" + (intValue >> 64));//求余为64%32=0,相当于右移0位(不移位) long longValue = 733183670L; System.out.println("longValue:" + (longValue));//打印longValue System.out.println("longValue右移1位:" + (longValue >> 1));//右移1位 System.out.println("longValue右移8位:" + (longValue >> 8));//右移8位 //当long类型右移位数大于等于64位操作时,会先求余后再进行移位操作 System.out.println("longValue右移64位:" + (longValue >> 64));//求余为64%64=0,相当于右移0位(不移位) System.out.println("longValue右移72位:" + (longValue >> 72));//求余为72%64=8,相当于右移8位 System.out.println("longValue右移128位:" + (longValue >> 128));//求余为128%64=0,相当于右移0位(不移位)
3.无符号右移( >>> )
package com.xcy; public class Test { public static void main(String[] args) { System.out.println(5>>3);//结果是0 System.out.println(-5>>3);//结果是-1 System.out.println(-5>>>3);//结果是536870911 } }
4.位与( & )
package com.xcy; public class Test { public static void main(String[] args) { System.out.println(5 & 3);//结果为1 } }
5.位或( | )
package com.xcy; public class Test { public static void main(String[] args) { System.out.println(5 | 3);//结果为7 } }
以上就是在java中位运算符转换进制的方法,本篇展示的都是大家用的比较频繁的位运算符,有其它方面想要了解的,可以课后自己找寻资料。更多Java学习指路:Java基础