在对于进制的变换上,每一个位运算符的操作代码都是不同的。进制之间的转换问题一直困扰着新学的小伙伴们,那么本篇带来的位运算符大家可一定不要错过。针对不同的位运算符,这里给出勒对应的代码解决方法。下面我们就来一起看看如何转换进制的吧。
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 } }
在IntelliJ IDEA中使用快捷键修改POM文件依赖版本时生成新的repository标签而不是直接修改版本号的原因可能与IDE的自动补全和依赖管理机制有关。以下是一些可能的原因和解决方法:依赖管理机制:IntelliJ IDEA可能会尝试从不同的存储库中查找指定版本的依赖。如果指定的版本在当前配置的存储库中找不到,IDE可能会自动添加新的存储库以确保可以下载到所需的版本。快捷键功能限制:某些快捷键可能只负责版本号的快速修改,而不处理存储库的管理。当你使用快捷键时,IDE可能会默认添加新的存储库以确
Java框架的优点和发展趋势是什么?
Java框架和F#框架在金融领域的优势
Java函数式编程对数据处理的革命性影响
JNA调用C++ DLL时如何避免异常导致JVM崩溃?
Android RecyclerView数据更新后视图不刷新,如何解决?