关闭

java int 与byte互转(转)

标签: javaint byte
57人阅读 评论(0) 收藏 举报
分类:
int -> byte
可以直接使用强制类型转换: byte b = (byte) aInt;
这个操作是直接截取int中最低一个字节,如果int大于255,则值就会变得面目全非了。
对于通过InputStream.read()获取的int,可采用这个方法将值还原。

byte -> int
这里有两种情况,一种是要求保持值不变,例如进行数值计算,可采用强制类型转换:int i = (int) aByte;
另一种是要求保持最低字节中各个位不变,3个高字节全部用0填充,例如进行编解码操作,
则需要采用位操作:int i = b & 0xff;

int InputStream.read()
该函数返回一个int类型,范围从0至255,如果到达流末尾,返回-1。通过ByteArrayInputStream的源码可以看到是如何从byte转到int
public synchronized int read() {
    return (pos < count) ? (buf[pos++] & 0xff) : -1;
}

int <-> byte[]
代码转自:java int 与 byte转换 
public static byte[] toByteArray(int iSource, int iArrayLen) {
    byte[] bLocalArr = new byte[iArrayLen];
    for (int i = 0; (i < 4) && (i < iArrayLen); i++) {
        bLocalArr[i] = (byte) (iSource >> 8 * i & 0xFF);
    }
    return bLocalArr;
}

// 将byte数组bRefArr转为一个整数,字节数组的低位是整型的低字节位
public static int toInt(byte[] bRefArr) {
    int iOutcome = 0;
    byte bLoop;

    for (int i = 0; i < bRefArr.length; i++) {
        bLoop = bRefArr[i];
        iOutcome += (bLoop & 0xFF) << (8 * i);
    }
    return iOutcome;
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

java中的强制类型转换 int转为byte

java中的基本类型的强制转换都是非常粗暴的,对于浮点型转为整型,都进行非常粗暴的截尾,对于多位数转换为少位数,也只是截断,根本不做舍入和约算。
  • liangsir_l
  • liangsir_l
  • 2017-04-19 13:08
  • 2859

Java 中 byte、byte 数组和 int、long 之间的转换

Java 中 byte 和 int 之间的转换源码: //byte 与 int 的相互转换 public static byte intToByte(int x) { return (b...
  • defonds
  • defonds
  • 2013-04-10 14:34
  • 81415

java 里面的string 和byte[] 怎么互转?

1.string 转 byte[] byte[] midbytes=isoString.getBytes("UTF8"); //为UTF8编码 byte[] isoret = srt2.getByte...
  • phenixyf
  • phenixyf
  • 2016-08-04 14:26
  • 834

java中byte数组与int类型的转换(两种方式)

java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送、者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形...
  • z69183787
  • z69183787
  • 2014-08-14 21:20
  • 21300

Java 将byte[] 与int类型互相转换

在使用TCP socket进行编写文件传输协议的时候,找Java中,可以使用BufferedOutputStream 和 BufferedInputStream来缓冲输出和输入的数据,但是,这里有个问...
  • shengno1
  • shengno1
  • 2014-04-30 21:44
  • 1574

java byte转int 互相转换原理详解

java byte转int 互相转换原理详解 原码,反码,补码概念
  • wojiuai2093
  • wojiuai2093
  • 2016-03-02 14:56
  • 3838

Java 任意长度byte数组转换为int数组

嗯。最近工程上遇到一个byte数组转换为int的问题,解决过程中遇到了几个坑,经过各种查资料终于还是解决了。撒花。 Java的位运算以及byte数组与其他类型数据的转换比c/c++感觉麻烦一些。这里...
  • zhuimengfb
  • zhuimengfb
  • 2015-10-09 19:40
  • 2586

用java实现将int等类型转换为byte数组,将byte数组转换为int等类型,支持大小端字节序

调用nio的ByteBuffer实现将int等类型转换为byte数组,将byte数组转换为int等类型,支持大小端字节序 不废话,直接上code package com.klaus.utils; ...
  • kkkkkkkkkkkk_
  • kkkkkkkkkkkk_
  • 2014-01-02 11:00
  • 2256

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

在java中,可能会遇到将int转成byte[]数组,或者将byte[]数组转成int的情况。下面我们来思考下怎么实现? 首先,分析int在java内存中的存储格式。 众所周知,int类型在内存中占4...
  • tang9140
  • tang9140
  • 2015-02-02 09:01
  • 5339

Java中int与byte数组转换详解

1、与运算符的理解(&):            参加运算的两个数据,按二进位进行“与”运算。如果两个相应的二进位都为1,则该位的结果值为1,否则为0。即 0&0=0;0&1...
  • zmx729618
  • zmx729618
  • 2016-06-28 14:33
  • 8125
    个人资料
    • 访问:155次
    • 积分:13
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档