导航:首页 > 编程语言 > javabyte0xff

javabyte0xff

发布时间:2023-02-24 19:01:17

java中如何将字符串"0xff"转为byte型即把"0xff"转为-1

java中将字符串"0xff“转为byte型,使用强制转换,如下代码:

packagecom.qiu.lin.he;


publicclassCeShi{

publicstaticvoidmain(String[]args){

byteb=(byte)Integer.parseInt("0xff".substring(2),16);
System.out.println(b);//输出-1
}
}

输出结果为:

Ⅱ java中的byte有什么作用

在今天,byte字节就是一个八位元组,使用其它位数的机器都进了博物馆。 java也提供了一个byte数据类型,并且是基本类型。java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127,也就是signed byte。不幸的是,byte的用作计数的时间远少于用表达基本内存单元的时间。比如从stream里读入一个双字节字符,我们先收到2个byte。为了把byte转换成适当的形式,需要对byte值做一些比较,比如判断字符集要比较其是否在某个编码范围内,比如GBK 0x8140~0xFEFE,然后new适当的string。 signed byte 把 0x00 ~ 0xff 映射成 0~127 -128~-1 两段,注意当与literal比较时,java自动将literal识别成int 可以用 下面的小程序来验证: 1 public class JavaByte 2 { 3 public static void main(String[] args) 4 { 5 byte b = 0; 6 for ( int i = 0; i <= 0xff; ++i ) 7 { 8 b = (byte)i; 9 System.out.print(" "+i+":"+b+", "); 10 } 11 } 12 } 当收到(0xC7B0)这个GBK字符时,要判断 0x81 <= 0xC7 <= 0xFE 是否成立,实际变成判断 -127 < -57 < -2,唔,万幸,可以直接比较 low < ch < high。如果要判断 0x00 <= 0xC7 <= 0x80 (ASC Char),这回麻烦了,变成判断 (0 <= -57 <= 127) || ( 0x57 == -128 )。比较简单的办法用 (b+256)%256的办法令其值回到0~255,或者用&0xff并赋给一个int。考虑到jvm里的byte其实也是32位的,所以在计划用byte的地方,直接用integer并不会有什么实际的损失,而 DataInputStream也提供了一个readUnsignedByte()方法返回的是int。所以真正的解决方案是忘掉byte,直接上 int。至于为什么java没有unsigned数据类型,照下面这个interview里Jams Golsing的意思,应该是java应该简单而unsigned算术过于复杂了会让大多数程序员产生误解误用:

Ⅲ Java:转16进制时常见的【byte[i] & 0xFF】是什么意思呢

int v ; 这里不论你赋值给v什么值,v都会是四个字节的整数
所以,调用Integer.toHexString(v); 出来的还是32位的字符串

b[i] & 0xFF只是保证了v的前三个字节是0,只有最后一个字节有数

Ⅳ java中关于&运算符 和 0xFF 的问题

260的2进制为100000100 由于0xFF是字节操作 高位的1已经超界,所以260在强转成byte后高位的1会丢失。 也就是
00000100
&
11111111
=
00000100 转换成2进制就是等于4

4跟什么运算能等于260?

因为260已经大于127,也就是大于1个字节所以这里在反推回去的时候不能在进行8位的字节操作了 就必须用16位的字操作了
260的2进制是
100000100
4的2进制是
00000100
结果很明显 只需与
100000000 按位取或运算就能得到260

也就是 4 | 0x0100

Ⅳ Java:关于byte转16进制的& 0xFF,我的理解正确吗

/**
*Convertbyte[]tohexstring.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)
*来转换成16进制字符串。
*@paramsrcbyte[]data
*@returnhexstring
*/
(byte[]src){
StringBuilderstringBuilder=newStringBuilder("");
if(src==null||src.length<=0){
returnnull;
}
for(inti=0;i<src.length;i++){
intv=src[i]&0xFF;
Stringhv=Integer.toHexString(v);
if(hv.length()<2){
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
returnstringBuilder.toString();
}

Ⅵ java中的byte有什么作用

在今天,byte字节就是一个八位元组,使用其它位数的机器都进了博物馆。 java也提供了一个byte数据类型,并且是基本类型。java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127,也就是signed byte。不幸的是,byte的用作计数的时间远少于用表达基本内存单元的时间。比如从stream里读入一个双字节字符,我们先收到2个byte。为了把byte转换成适当的形式,需要对byte值做一些比较,比如判断字符集要比较其是否在某个编码范围内,比如GBK 0x8140~0xFEFE,然后new适当的string。 signed byte 把 0x00 ~ 0xff 映射成 0~127 -128~-1 两段,注意当与literal比较时,java自动将literal识别成int 可以用 下面的小程序来验证: 1 public class JavaByte 2 { 3 public static void main(String[] args) 4 { 5 byte b = 0; 6 for ( int i = 0; i <= 0xff; ++i ) 7 { 8 b = (byte)i; 9 System.out.print(" "+i+":"+b+", "); 10 } 11 } 12 } 当收到(0xC7B0)这个GBK字符时,要判断 0x81 <= 0xC7 <= 0xFE 是否成立,实际变成判断 -127 < -57 < -2,唔,万幸,可以直接比较 low < ch < high。如果要判断 0x00 <= 0xC7 <= 0x80 (ASC Char),这回麻烦了,变成判断 (0 <= -57 <= 127) || ( 0x57 == -128 )。比较简单的办法用 (b+256)%256的办法令其值回到0~255,或者用&0xff并赋给一个int。考虑到jvm里的byte其实也是32位的,所以在计划用byte的地方,直接用integer并不会有什么实际的损失,而 DataInputStream也提供了一个readUnsignedByte()方法返回的是int。所以真正的解决方案是忘掉byte,直接上 int。至于为什么java没有unsigned数据类型,照下面这个interview里Jams Golsing的意思,应该是java应该简单而unsigned算术过于复杂了会让大多数程序员产生误解误用:

Ⅶ java中如何将字符串"0xff"转为byte型即把"0xff"转为-1

Stringstr="ff";
Integerin=Integer.valueOf(str,16);

Integer.valueOf就是干这事的,第二个参数就是告诉它是多少进制

Ⅷ java byte转换成字符串

1、将byte数组转换成字符
byte[] b={(byte)0xB8,(byte)0xDF,(byte)0xCB,(byte)0xD9};
String str= new String (b);

2、将字符转换成byte数组
String str = "XXXX";
byte[] sb = str.getBytes();

Ⅸ java 字节 & 0xFF 什么意思, <=0xF又是什么意思

问题1:16进制字符串的作用主要是便于查看,每个字节必然是两位字符。 如果不转换的话,字付中很多都是不可见字符,可能导致显示错乱,甚至被系统错误的解码。
问题2: 网上的写法是2进制的。 这样可以一眼看出对应的位的变化。而你的2010是10进制的。你需要手工转成2进制才能很好的确认值。
问题3:0xff换成2进制就是8个1,这样与的话,其实就是取到了字符的低8位。 oxf就是15, 小于15的数会转换成一个16进制数,你的代码里希望是固定的两个16进制数,所以当只会产生一个时要加个0

阅读全文

与javabyte0xff相关的资料

热点内容
奔跑程序员 浏览:466
服务器如何搭建类似github 浏览:290
明日之后安卓太卡怎么办 浏览:502
如何使用命令方块找到村庄 浏览:766
泛函压缩映像原理 浏览:521
win10清除文件夹浏览记录 浏览:964
如何查看服务器域中所有服务 浏览:384
学mastercam91编程要多久 浏览:999
如何查服务器地址和端口 浏览:911
教学云平台app怎么下载 浏览:389
单片机510教学视频 浏览:624
陕西信合app怎么查看自己的存款 浏览:663
风冷冰箱有压缩机 浏览:274
android实现wifi连接wifi 浏览:669
飞猪app怎么帮别人值机 浏览:924
笔记本开我的世界服务器地址 浏览:546
怎样隐藏bat命令 浏览:127
android开发创意 浏览:138
京剧猫为什么进不去服务器 浏览:784
怎么自己免费制作一个手机app 浏览:582