byte是8位,取值范围是-128到127,如何将它转成int型并使其范围成为0到255?
解决方案 »
- 多线程问题,每次都是只有一个线程有机会执行代码,求解释
- java关于主窗体和子窗体之间的控制
- jsp连接数据库时出错了?请看看这是什么错误?
- 大伙儿给推荐本书看看
- 抽象类与接口的疑问?????????????????
- 我想要学习C语言 或是java 的基础 但不知道什么书好 帮忙推荐一些
- SWING 画出的直线能否加事件?
- 【急问】Java中控制精度的是哪个函数?--在线等
- 是不是只能在applet方法里的paint()里画图呀?
- 哪位大虾知道weblogic与websphere的差别?
- xp下java 环境变量设置 运行是出现异常java.lang.noclassdeffounderror
- 怎么连数据库 近来帮帮我~~
不是很懂楼主的意思。
如果你要将byte类型的变量转换成int型的,直接显示转换就行了吧.
byte m=3;
int n=(int)m;
int i=b<0?(int)(b+256):(int)b;
int i=b & 0xff;
......
int a;
if (b1 < 0){
a = b1 + 256;
}else{
a = b1;
}
byte b=...;
int i=b<0?(int)(b+256):(int)b;
---------------------------
顶一下!
PS一下: int i=b & 0xff;是什么意思啊,跟0xff做与操作改变了原来的二进制位吗?这个转换的实现机制是什么呢?
楼主是说把符号位看出数据位?
-10变成-10+128=118?
是这个意思,不过-10应该变成-10+256=246
byte b=...;
int i=b<0?(int)(b+256):(int)b;应该很真确了