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不顯示