A. java如何得到打印出一个byte的二进制形式,toBinaryString()打印出来的是32位,怎么打印出一个8位的
这个,你的数字占几位,Integer.toBinaryString打出来就是几位的啊,比如:
System.out.println(Integer.toBinaryString(10));
运行的结果就是:1010
只有4位的
B. java 将文件(如zip、txt等)转换成二进制数据并打印出来
可以通过BufferedReader 流的形式进行流缓存,之后通过read(字节流)方法获取到缓存的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
byte[] b = new byte[1024];
int len = 0;
while((len=bre .read(b))!=-1){//判断是不是到最后一个字节
System.out.println(new String(b,0,len));//输出二进制内容
}
bre.close();//关闭流
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
C. 怎么用 java输出二进制的23
java进制转换
java中进行二进制,八进制,十六进制,十进制间进行相互转换
十进制转成十六进制:
Integer.toHexString(int i)
十进制转成八进制
Integer.toOctalString(int i)
十进制转成二进制
Integer.toBinaryString(int i)
十六进制转成十进制
Integer.valueOf("FFFF",16).toString()
八进制转成十进制
Integer.valueOf("876",8).toString()
二进制转十进制
Integer.valueOf("0101",2).toString()
D. java程序在控制台输入一个正整数,要求以二进制的形式输出
利用JavaAPI直接转换
十进制数如何转换为二进制数,这在javaAPI 中有一个方法,Integer.toBinaryString( ) 括号里面写上你要转换的十进制数,这样可以直接转换。例如:
publicstaticvoidmain(String[]args){
十进制转换为二进制
System.out.println(Integer.toBinaryString(10));
}
通过求余,求商,并计算值(例如:把二进制的1010 直接输成十进制的1010)实现
publicstaticvoidmain(String[]args){但是这种方法存在一个问题:因为int类型是有取值范围的,如果转换的二进制数字超出了范围(例如:10011100110110)这个数字明显超出了int的取值范围,这样我们用int类型的sum进行存储的时候他就会自动转换为一个其他的数字。并且这个方法没有办法求负数的二进制数。
//TODOAuto-generatedmethodstub
inta=123;//定义一个变量并赋给他一个十进制的值
intremainder;//定义一个变量用于存储余数
intsum=0;//定义一个变量用于存放和
intk=1;//定义一个变量控制位数
while(a!=0){
remainder=a%10;//对目标数字求余
a/=2;//对目标数字求商
sum=sum+remainder*k;//求和
k*=10;//改变位数
}
System.out.println("10进制的123转换为2进制结果为:"+sum);
}
在方法二的基础上使用字符串对结果集进行存储
publicstaticvoidmain(String[]args){用这种方法就能很好解决int类型的越界问题,能解决所有的十进制转换二进制的问题。
intn=-10;
Stringresult="";
booleanminus=false;
//如果该数字为负数,那么进行该负数+1之后的绝对值的二进制码的对应位取反,然后将它保存在result结果中
if(n<0){
minus=true;
n=Math.abs(n+1);
}
while(true){
intremainder=(!minus&&n%2==0)||(minus&&n%2==1)?0:1;
//将余数保存在结果中
result=remainder+result;
n/=2;
if(n==0){
break;
}
}
//判断是否为负数,如果是负数,那么前面所有位补1
if(minus){
n=result.length();
for(inti=1;i<=32-n;i++){
result=1+result;
}
}
System.out.println(result);
}
E. java如何打印long形二进制
publicclassDemo{
publicstaticvoidmain(String[]args)throwsException{
byte[]by="abc".getBytes();
for(byteb:by){
System.out.println(Long.toBinaryString(b));
}
}
}
F. java中将234以二进制的方式打印在控制台上
十进制转成十六进制:Integer.toHexString(inti)十进制转成八进制Integer.toOctalString(inti)十进制转成二进制Integer.toBinaryString(inti)十六进制转成十进制Integer.valueOf("FFFF",16).toString()八进制转成十进制Integer.valueOf("876",8).toString()二进制转十进制Integer.valueOf("0101",2).toString()有什么方法可以直接将2,8,16进制直接转换为10进制的吗?java.lang.Integer类parseInt(Strings,intradix)使用第二个参数指定的基数,将字符串参数解析为有符号的整数。examplesfromjdk:parseInt("0",10)returns0parseInt("473",10)returns473parseInt("-0",10)returns0parseInt("-FF",16)returns-255parseInt("1100110",2)returns102parseInt("2147483647",10)returns2147483647parseInt("-2147483648",10)returns-2147483648parseInt("2147483648",10)("99",("Kona",10)("Kona",27)returns411787进制转换如何写(二,八,十六)不用算法Integer.toBinaryStringInteger.toOctalStringInteger.toHexString例二publicclassTest{publicstaticvoidmain(Stringargs[]){inti=100;StringbinStr=Integer.toBinaryString(i);StringotcStr=Integer.toOctalString(i);StringhexStr=Integer.toHexString(i);System.out.println(binStr);}例二publicclassTestStringFormat{publicstaticvoidmain(String[]args){if(args.length==0){System.out.println("usage:javaTestStringFormat");System.exit(0);}Integerfactor=Integer.valueOf(args[0]);Strings;s=String.format("%d",factor);System.out.println(s);s=String.format("%x",factor);System.out.println(s);s=String.format("%o",factor);System.out.println(s);}}其他方法:Integer.toHexString(你的10进制数);例如Stringtemp=Integer.toHexString(75);输出temp就为4b//输入一个10进制数字并把它转换成16进制importjava.io.*;publicclasstoHex{publicstaticvoidmain(String[]args){intinput;//存放输入数据//创建输入字符串的实例BufferedReaderstrin=newBufferedReader(newInputStreamReader(System.in));System.out.println("请输入一个的整数:");Stringx=null;try{x=strin.readLine();}catch(IOExceptionex){ex.printStackTrace();}input=Integer.parseInt(x);System.out.println("你输入的数字是:"+input);//输出从键盘接收到的数字System.out.println("它的16进制是:"+Integer.toHexString(input));//用toHexString把10进制转换成16进制
G. java 如何显示 二进制
java显示二进制,主要是使用基本类型的包装类的tobinaryString类型进行转换,代码如下:
packagecom.qiu.lin.he;
importjava.text.ParseException;
publicclassCeshi{
publicstaticvoidmain(String[]args)throwsParseException{
inti=8;
//使用包装类的toBinaryString转换成二进制
System.out.println(Integer.toBinaryString(i));
}
}
运行结果如下
H. JAVA编程,请问怎么将十进制数转换成二进制输出,又怎么将二进制数转换成十进制输出
1、创建java类,TestNumConv.java;
I. java中二进制怎么表示
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
1、Java中定义两个数,然后分别打印出它们的二进制表示:
System.out.println("Java二进制7: "+Integer.toBinaryString(7));
System.out.println("Java二进制-7: "+Integer.toBinaryString(-7));
输出:
Java二进制7:
111
Java二进制-7:
可以看到Java中对于数的表示属于有符号的,那么这个是怎么来的?
7好办,直接是111
-7转化二进制的过程:
(1)把-7转化成7,二进制是
111
(2)Java中对于不满32位的int二进制自动补齐,所以变成了
(29个0)111
(3)然后取反
(29个1)000
(4)然后加1
(29个1)001
这就是-7的整个转化过程,那么现在有一个问题,如果有一个文本文件,每一行有八位二进制,表示的范围是(0~255),也就是用一个字节表示的无符号整数,如果现在要把这些二进制转化成整数存到文件里应该怎么做?
文件:
line1
11111110
(254)
line2
00000000
(0)
假设用Java读进了第一行,那么直接打印出来的值是-2,不符合要求,这时让-2变254有两种办法:
(1)用Java自带的方法,Byte.toUnsignedInt((byte)
-2)(ps.-2的二进制表示就是line1),这样打印出来的就是254了
System.out.println(Byte.toUnsignedInt((byte) -2));
输出:254
第二种方法的原理:
Java中-2的二进制表示:(这个二进制的后八位就是line1,可以直接打印的话Java把其当做了负数
-2)
Java中255的二进制表示:(24个‘0’,8个‘1’)
做与后变为:
这样做与后表示的数就是正数了
254。可以想一下,假设每一行用2个字节表示一个无符号数,那么可以把每一行变成正整数用方法2怎么做?
2.Java中的>>和>>>
'>>'
算术右移,向右移左边补符号位
'>>>'
逻辑右移,向右移左边补0
System.out.println("Java二进制-7: "+Integer.toBinaryString(-7));
System.out.println("-7>>2: "+Integer.toBinaryString(-7>>2));
System.out.println("-7>>>2: "+Integer.toBinaryString(-7>>>2));输出:
Java二进制-7:
-7>>2:
-7>>>2: //正常应该这样(00)左边的两个0不显示