当前位置: 代码迷 >> J2SE >> java字符 二进制,该怎么解决
  详细解决方案

java字符 二进制,该怎么解决

热度:526   发布时间:2016-04-23 20:05:40.0
java字符 二进制
我现在想得到  “你” 这字的二进制表示,按理说GBK占2个字节 ,一个字节是8个二进制位  。2个字节就是16个二进制位


实际代码如下:


String s = "你";
byte[] bs = s.getBytes("gbk");
 
for (byte b : bs) {//循环两次
Byte gg = new Byte(b);
System.out.println(Integer.toBinaryString(gg.intValue()));//11111111111111111111111111000100
System.out.println(Integer.toBinaryString(gg.intValue()).length());//32
}

------解决思路----------------------
String s = "你";
byte[] bs = s.getBytes("gbk");
for (byte b : bs) {//循环两次
//Byte gg = new Byte(b);
System.out.println(b&0xff);
System.out.println(Integer.toBinaryString(b&0xff));//11111111111111111111111111000100
System.out.println(Integer.toBinaryString(b&0xff).length());//32
}

java中:中文是以char表示的,char的取值为0~65535
用&0xff把byte的负值改为正直
------解决思路----------------------
引用:
我现在想得到  “你” 这字的二进制表示,按理说GBK占2个字节 ,一个字节是8个二进制位  。2个字节就是16个二进制位


实际代码如下:


String s = "你";
byte[] bs = s.getBytes("gbk");
 
for (byte b : bs) {//循环两次
Byte gg = new Byte(b);
System.out.println(Integer.toBinaryString(gg.intValue()));//11111111111111111111111111000100
System.out.println(Integer.toBinaryString(gg.intValue()).length());//32
}
很好
------解决思路----------------------
引用:
Quote: 引用:

我现在想得到  “你” 这字的二进制表示,按理说GBK占2个字节 ,一个字节是8个二进制位  。2个字节就是16个二进制位


实际代码如下:


String s = "你";
byte[] bs = s.getBytes("gbk");
 
for (byte b : bs) {//循环两次
Byte gg = new Byte(b);
System.out.println(Integer.toBinaryString(gg.intValue()));//11111111111111111111111111000100
System.out.println(Integer.toBinaryString(gg.intValue()).length());//32
}
很好
我觉得很有用
------解决思路----------------------
粗体可以用吗
  相关解决方案