package 移位运算; public class 移位运算 { public static void main(String[] args) { //00000111 01011011 11001101 00010101 int n=123456789; //n为需要进行移位处理的32位int型初始值 byte[] a =chai(n); for (int i = 0; i < a.length; i++) { byte b=a[i]; System.out.print(b+" "); } //将数组重新合并成一个int型 System.out.println(hebing(a)); } private static int hebing(byte[] arr) { int n=0; /*for (int i = 0; i < arr.length; i++) { //循环位或 n=n|arr[i]<<8*(arr.length-1)>>>8*i; } * * n=n|arr[0]<<24; * n=n|arr[1]<<24>>>8; * n=n|arr[2]<<24>>>16; * n=n|arr[3]<<24>>>24; */ for (int i = 0; i < arr.length; i++) { //循环位或 n+=(arr[i]&0x000000ff)<<8*(arr.length-1-i); } return n; } private static byte[] chai(int n) { // 新建四个长度的byte数组 byte[] arr = new byte[4]; for (int i = 0; i < arr.length; i++) { arr[i] = (byte) (n>>8*(arr.length-i-1)); } return arr; } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接
int是byte、short、int、long的默认文字,然后是为什么byte c=15被接受而不进行强制转换,但不接受方法参数。 提前谢谢你。
For I am not ashamed of the gospel; it is the power of God for salvation to everyone who has faith, to the Jew first and also to the Greek. For in it the righteousness of God is revealed through faith
我这里有这个代码: 但我得到了错误信息: 接线员 为什么呢?如何修复代码? 以下是代码的文本形式:
问题内容: 我想知道如何实现由位表示的位串的k 循环 右移。 这些代码所做的全部是 返回0 ,如何使其循环移位? 问题答案: 这应该工作: 另请参阅Wikipedia上有关循环移位的文章。
本文向大家介绍基于java中byte数组与int类型的转换(两种方法),包括了基于java中byte数组与int类型的转换(两种方法)的使用技巧和注意事项,需要的朋友参考一下 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送、者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组