byte 转 java byte_【转】java中byte, int的转换, byte String转换

原文网址:http://freewind886.blog.163.com/blog/static/661924642011810236100/

最近在做些与编解码相关的事情,又遇到了byte和int的转换,看着那些关于反码、补码的说明依旧头疼,还是记下些实用的方法吧。

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[]

代码转自:

原文网址:http://zhidao.baidu.com/question/586106005.html

1、string 转 byte[]

String str = "Hello";

byte[] srtbyte = str.getBytes();

2、byte[] 转 string

byte[] srtbyte;

String res = new String(srtbyte);

System.out.println(res);

3、设定编码方式相互转换

String str = "hello";

byte[] srtbyte = null;

try {

srtbyte = str.getBytes("UTF-8");

String res = new String(srtbyte,"UTF-8");

System.out.println(res);

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值