Ⅰ java中有將二進制轉換成十進制的方法嗎
:java進制轉換 java中進行二進制,八進制,十六進制,十進制間進行相互轉換 十進制轉成十六進制: Integer.toHexString(int i) 十進制轉成八進制 Integer.toOctalString(int i) 十進制轉成二進制 Integer.toBinaryString(int i) 十六進制轉成十進
Ⅱ java 16進制怎麼轉10進制
低進制轉化高進制數字應該變小,21的16進制是15;
Integer.parseInt(str,16);
16的意思是將str以16進制解析str為10進制,不是將str轉化為16進制;
10轉16的方法是:
Integer.toHexString(num);
看個例子:
Ⅲ JAVA編程二進制怎樣轉換成十進制
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
Test t = new Test();
double d = 8;
String s = t.decimal2BinaryStr(d);
System.out.println("十進制數"+d+"轉成二進制數為:"+s);
}
/**
* 十進制數轉二進制數
* @param d 十進制數
* @return 十進制數轉換成二進制的字元串
*/
public String decimal2BinaryStr(double d){
String result = decimal2BinaryStr_Inte(d);
result += decimal2BinaryStr_Deci(d);
return result;
}
/**
* 十進制整數部分轉二進制數
* @param d 十進制數
* @return 十進制整數部分轉換成二進制的字元串
*/
public String decimal2BinaryStr_Inte(double d){
// return Integer.toBinaryString((int)d);
/*
* 本來利用上面的Integer.toBinaryString(int)就可以得到整數部分的二進制結果,
* 但為了展示十進制轉二進制的演算法,現選擇以下程序來進行轉換
*/
String result = "";
long inte = (long)d;
int index = 0;
while(true){
result += inte%2;
inte = inte/2;
index++;
if(index%4 == 0){
result+=" ";
}
if(inte==0){
while(index%4!=0){
result+="0";
index++;
}
break;
}
}
char[] c = result.toCharArray();
char[] cc = new char[c.length];
for(int i=c.length; i>0; i--){
cc[cc.length-i] = c[i-1];
}
return new String(cc);
}
/**
* 十進制小數部分轉二進制
* @param d 十進制數
* @return 十進制小數部分轉換成二進制小數的字元串
*/
public String decimal2BinaryStr_Deci(double d){
return decimal2BinaryStr_Deci(d, 0);
}
/**
* 十進制小數部分轉二進制
* @param d 十進制數
* @param scale 小數部分精確的位數
* @return 十進制小數部分轉換成二進制小數的字元串
*/
public String decimal2BinaryStr_Deci(double d, int scale){
double deci = sub(d,(long)d);
if(deci==0){
return "";
}
//為了防止程序因所轉換的數據轉換後的結果是一個無限循環的二進制小數,因此給其一個默認的精確度
if(scale==0){
scale = (String.valueOf(deci).length()-2)*4;
}
int index = 0;
StringBuilder inteStr = new StringBuilder();
double tempD = 0.d;
while(true){
if(deci==0 || index==scale){
while(index%4!=0){
inteStr.append("0");
index++;
}
break;
}
if(index==0){
inteStr.append(".");
}
tempD = deci*2;
inteStr.append((int)tempD);
deci = sub(tempD ,(int)tempD);
index++;
if(index%4 == 0){
inteStr.append(" ");
}
}
return inteStr.toString();
}
/**
* 提供精確的減法運算。
* @param v1 被減數
* @param v2 減數
* @return 兩個參數的差
*/
public static double sub(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
}
Ⅳ java 字元串轉化為十進制
不知道你准確的用意.
如果只是想把字元串轉換成十進制的,你可以把字元串先轉換為位元組數組,再把位元組轉成十進制的就行了
for(byte b:"mann".getBytes()){
System.out.print(b);
}
Ⅳ 使用java,如何將十六進制數D6CD2F01轉換為十進制數19910102
import java.util.Scanner;
public class test2{
public static void main(String [] args){
Scanner cin=new Scanner(System.in);
String num1="D6CD2F01";//"D6CD2F01";
//long n=Long.parseLong(num1,16);//由16進制轉化為10進制(兩個都行,1:返回long;2:返回Long)
long n=Long.valueOf(num1,16);
System.out.print(n);
/*
D6CD2F01的十進制數已經超過int的范圍了
3603771137
*/
}
}
Ⅵ java怎麼把16進制的字元串轉化為十進制
toHexString
public static String toHexString(int
i)以十六進制的無符號整數形式返回一個整數參數的字元串表示形式。
如果參數為負,那麼無符號整數值為參數加上
232;否則等於該參數。將該值轉換為十六進制(基數 16)的無前導 0 的 ASCII 數字字元串。如果無符號數的大小值為零,則用一個零字元 '0'
('\u0030') 表示它;否則,無符號數大小的表示形式中的第一個字元將不是零字元。用以下字元作為十六進制數字:
0123456789abcdef
這些字元的范圍是從 '\u0030' 到 '\u0039' 和從 '\u0061' 到 '\u0066'。如果希望得到大寫字母,可以在結果上調用
String.toUpperCase() 方法:
Integer.toHexString(n).toUpperCase()
參數:
i
- 要轉換成字元串的整數。
返回:
用十六進制(基數 16)參數表示的無符號整數值的字元串表示形式。
// 轉化字元串為十六進制編碼
public static String toHexString(String s)
{
String str="";
for
(int i=0;i<s.length();i++)
{
int ch = (int)s.charAt(i);
String s4
= Integer.toHexString(ch);
str = str + s4;
}
return str;
}
// 轉化十六進制編碼為字元串
public static String toStringHex(String s)
{
byte[] baKeyword = new byte[s.length()/2];
for(int i = 0; i <
baKeyword.length; i++)
{
try
{
baKeyword[i] = (byte)(0xff &
Integer.parseInt(s.substring(i*2, i*2+2),16));
}
catch(Exception e)
{
e.printStackTrace();
}
}
try
{
s = new
String(baKeyword, "utf-8");//UTF-16le:Not
}
catch (Exception e1)
{
Ⅶ 用JAVA把二進制數轉換成十進制數。
二進制轉十進制
Integer.valueOf("0101",2).toString()
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("輸入一個二進制數: ");
String a = sc.nextLine();
int d = Integer.parseInt(a, 2); // 2進制
int o = Integer.parseInt(a, 8); // 8進制
System.out.println("二進制轉為十進制: " + d);
System.out.println("八進制轉為十進制: " + o);
計算機內部使用二進製表示數
二進制與十進制的轉換是比較復雜的。比如我們要讓計算機計算50+50=?,那麼首先要把十進制的50轉換成二進制的「50」——110010,這個過程要做多次除法,而計算機對於除法的計算是最慢的。把十進制的50轉換成二進制的110010還不算完,計算出結果1100100之後還要再轉換成十進制數100,這是一個做乘法的過程,對計算機來說雖然比除法簡單,但計算速度也不快。
以上內容參考:網路-十進制
Ⅷ java如何以按鈕使輸入的二進制轉化為十進制
使用Integer.parseInt(Strings,intradix)。比如要將二進制數1000轉換為十進制數.inti=Integer.parseInt("1000",2);System.out.println(i);輸出結果為:8。
Ⅸ java中怎麼把字元串解析成10進制數
java.lang.Integer中有一個方法:valueOf(String s,int radix),其中s為傳入的參數,radix為要將這個字元串中每一個數將被識別成什麼進制的數,不過無論字元串中的每一位被是識別成什麼都不重要,結果是它都轉換成了10進制數。比如:
定義一個字元串val s:String = "924"
再定義一個變數val z = Integer.valueOf(s,10),即可把字元串s中每一位數識別為10進制數,即『9』就是十進制中的9,『2』就是十進制中的2,『4』就是10進制中的4,所以最後轉換成10進制數依舊為924
但是如果將變數z定義成val z = Integer.valueOf(s,16),即可把字元串s中每一位數識別為16進制數,即『9』就是16進制中的9,『2』就是16進制中的2,『4』就是16進制中的4,所以轉換成10進制數為2340