Java中Int转byte分析

  针对声明变量 int i = 3,j = 8;
    int占4个字节,i = 3 在Java二进制表示:
      00000000 00000000 00000000 00000011
    j = 8 在Java二进制表示:
      00000000 00000000 00000000 00001000
  下面进行运算:
    1、按位与:每一位进行按位与运算,规则是
      1&1 = 1;1&0 = 0;0&1 = 0;0&0 = 0;
      所以i & j = 0
    2、右位移或者左位移
      i>>2 = 0
      向右位移两位,右边使用0补位,变成:
      00000000 00000000 00000000 00000000
      i<<2 = 12
      向左位移两位,左边使用0补位,变成:
      00000000 00000000 00000000 00001100

  所以使用Int转byte方法

public byte[] intToByte(int val){
byte[] b = new byte[4];
b[0] = (byte)(val & 0xff);
b[1] = (byte)((val >> 8) & 0xff);
b[2] = (byte)((val >> 16) & 0xff);
b[3] = (byte)((val >> 24) & 0xff);
}

  

原文地址:https://www.cnblogs.com/lihaiming93/p/9671195.html

时间: 2024-10-09 03:19:59

Java中Int转byte分析的相关文章

java中int与byte数组互转代码详细分析

转载请注明出处:http://blog.csdn.net/tang9140/article/details/43404385 在java中,可能会遇到将int转成byte[]数组,或者将byte[]数组转成int的情况.下面我们来思考下怎么实现? 首先,分析int在java内存中的存储格式. 众所周知,int类型在内存中占4个字节,采用补码方式存储(假如对原码.反码.补码不熟悉,请查阅相关资料).举例: 整型-128对应内存中的二进制值为 整型128对应内存中的二进制值为 然后,考虑如何把int

java中int与byte相互转换

1:int和byte的关系 在java中,int整形变量是32位的,而byte是8位的,他们之间的转换有一定的策略和讲究. 1.1:int 到byte 首先我们实现int和byte之间的转换,思路如下: 创建一个byte数组,长度为4.byte[0]是最高位,byte[1]是次高位,byte[2]是次次高位,byte[3]是最低位, 在将int数据右移24位,然后与0xFF相与即可得到byte[0]. 在将int数据右移16位,然后与0xFF相与即可得到byte[1]. 在将int数据右移8位,

013、Java中int类型转换byte

01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public static void main(String[] args) { int num = 130; // 此范围超过了byte定义 byte x = (byte) num; // 由int变为byte System.out.println(x); } } 02.效果如下: 知识有价,如果您认为这篇文

java 中 image 和 byte[] 相互转换

java 中 image 和 byte[] 相互转换可恶的…………其实也挺好的 只是把好不容易写出来的东西记下来,怕忘了…… 下面,我来介绍一个简单的 byte[] to image, 我们只需要一个存储了图片信息的二进制串(byte[]) 然后,这样: InputStream buffin = new ByteArrayInputStream(/*二进制串*/,                                               /*起始位置*/,           

转:Java中String与byte[]的转换

fuzhaoyang 转:Java中String与byte[]的转换 原文地址:http://blog.csdn.net/llwan/article/details/7567906 String s = "fs123fdsa";//String变量 byte b[] = s.getBytes();//String转换为byte[] String t = new String(b);//bytep[]转换为String 做JAVA经常会碰到中文乱码问题,还有各种编码的问题,特别是Stri

JAVA中int、String的类型转换

int -> String int i=12345;String s="";第一种方法:s=i+"";第二种方法:s=String.valueOf(i);这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? String -> int s="12345";int i;第一种方法:i=Integer.parseInt(s);第二种方法:i=Integer.valueOf(s).intValue();这两种方法有什么区别

java中int取值范围是怎么计算的?

首先jdk中定义int占4个字节 ===> 32位(后面全部的计算都是以此为根据的) 32位就是jvm仅仅给分配32个格子的空间,用以存放数据. 总所周知计算机中用0和1存放数据. 那么,32个格子中放满0或1的方法 有2的32次方种: 所以.这32个格子中.或者说32位的空间能标识10进制的数字: 最小 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 最大 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

java中int,float,long,double取值范围,内存泄露

java中int,float,long,double取值范围是多少? 写道 public class TestOutOfBound { public static void main(String[] args) { System.out.println(Integer.MAX_VALUE-(-Integer.MAX_VALUE)); //内存溢出System.out.println(Integer.MAX_VALUE); //2的31次方-1,10个数位,正的20亿左右,用在钱上面不一定够Sy

Eclipse中的快捷键快速生成常用代码(例如无参、带参构造,set、get方法),以及Java中重要的内存分析(栈、堆、方法区、常量池)

Eclipse中的快捷键快速生成常用代码(例如无参.带参构造,set.get方法),以及Java中重要的内存分析(栈.堆.方法区.常量池) 以上就是Eclipse中的快捷键快速生成常用代码(例如无参.带参构造,set.get方法),以及Java中重要的内存分析(栈.堆.方法区.常量池)的全部内容了,更多内容请关注:CPP学习网_CPP大学 本文固定链接:CPP学习网_CPP大学-Eclipse中的快捷键快速生成常用代码(例如无参.带参构造,set.get方法),以及Java中重要的内存分析(栈.