一个关于Integer.toBinaryString的简单问题?

iamross 2004-04-19 01:48:38
比如说一个byte位16进制的80,我想把它转换成字符串10000000
但是现在用Integer.toBinaryString转换之后,成了11111111111111111111111110000000
不知道应该怎么弄?

多谢啊,一定给分!
...全文
742 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamross 2004-04-20
  • 打赏
  • 举报
回复
多谢两位,不好意思,结贴结晚了!
XKP 2004-04-19
  • 打赏
  • 举报
回复
import java.io.*;

public class Test4{
public static void main( String[] args ) throws Exception{
byte b = -127;
int i = b<0?b+256:b;
System.out.println( Integer.toBinaryString( i ) );
}
}

这样更像你的要求一点
sean_gao 2004-04-19
  • 打赏
  • 举报
回复
在处理byte的二进制时,我一般都不用Integer.toBinaryString,我一般都会自己写一个helper方法,举例如下:

static String getBinaryFromByte(byte b) {
StringBuffer sb = new StringBuffer();
for (int i = 7; i >=0; i--) {
sb.append(((b&(1<<i))!=0)?'1':'0');
}
return sb.toString();
}
XKP 2004-04-19
  • 打赏
  • 举报
回复
import java.io.*;

public class Test4{
public static void main( String[] args ) throws Exception{
int hexInt = -128;
System.out.println( Integer.toBinaryString( hexInt<0?hexInt+256:hexInt ) );
}
}

??????????
iamross 2004-04-19
  • 打赏
  • 举报
回复
不好意思,我说的不是太清楚
我是从文件中把“80”作为一个byte取出来,它的值实际上-128
这时候,如何能得到字符串10000000
XKP 2004-04-19
  • 打赏
  • 举报
回复

public class Test4{
public static void main( String[] args ) throws Exception{
int hexInt = 0X80;
System.out.println( Integer.toBinaryString( hexInt ) );
}
}

?????????????????
sean_gao 2004-04-19
  • 打赏
  • 举报
回复
楼上的方法也不错啊。

我给楼主讲讲两者的主要区别:如果你的byte头一位不是1,那么我的方法还是会算出8位,楼上的方法按楼主的思路用的是Integer类的toBinaryString方法,会从第一个不是0的位开始显示。楼主按自己的要求选合适的吧。

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在Java编程中,将控制台输入的任意字符转换为十六进制、二进制和十进制是一种常见需求,尤其在数据表示和计算场景中。要实现这一功能,需要理解字符与数值之间的关系。在ASCII编码(或Unicode编码)中,每个字符都有一个对应的数值,例如,字母"A"的ASCII值为65,这是其十进制表示。我们可以通过强制类型转换将字符转换为其对应的ASCII值。对于二进制和十六进制的转换,Java提供了内置方法。二进制转换可以通过Integer.toBinaryString()实现,十六进制转换则通过Integer.toHexString()完成。 以下是一个简单的Java程序,用于实现上述功能: 该程序通过Scanner类读取用户输入的字符,并使用charAt(0)方法获取第一个字符。接着,程序将字符转换为其ASCII对应的十进制值,并分别调用Integer.toBinaryString()和Integer.toHexString()方法将其转换为二进制和十六进制字符串,最后通过System.out.println输出结果。 在实际开发中,可能需要对输入进行验证,例如确保用户输入的是单个字符,或者处理非ASCII字符。对于Unicode字符,可以使用Character.codePointAt()方法,它能够处理宽字符,如UTF-16编码中的字符。Java提供了丰富的工具来处理字符与数字之间的转换,掌握这些知识对于编写高效、可靠的Java程序至关重要。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧