『壹』 java實現:整數進制相互轉換
java實現:整數進制相互轉換的方法:
十進制轉為二進制、八進制、十六進制, 用 Integer.toXXXString()方法
(1)十進制轉為二進制: Integer.toBinaryString(int i);
public static String toBinaryString(inti):以二進制(基數 2)無符號整數形式返回一個整數參數的字元串表示形式。
(2)十進制轉為8進制 :Integer.toOctalString(int i);
public static String toOctalString(inti):以八進制(基數 8)無符號整數形式返回一個整數參數的字元串表示形式。
(3)十進制轉為16進制: Integer.toHexString(int i);
public static String toHexString(inti):以十六進制(基數 16)無符號整數形式返回一個整數參數的字元串表示形式。
舉例:
Stringbin=Integer.toBinaryString(10);
Stringoct=Integer.toOctalString(10);
Stringhex=Integer.toHexString(10);
2.十六進制、八進制、二進制轉為十進制(有兩種方法):parseInt() 和valueOf()。
Integer.parseInt(String s,int radix);
public static int parseInt(String s,int radix) throws NumberFormatException{}使用第二個參數作為指定的基數,將字元串參數解析為有符號的整數;
Integer.valueOf(String s,int radix);
public static Integer valueOf(Strings, intradix) throws NumberFormatException{}返回一個 Integer 對象,該對象中保存了用第二個參數提供的基數進行解析時從指定的 String 中提取的值。
舉例:
try{
inti=Integer.parseInt("a",16);
//輸出為10進制數10
System.out.println(i);
}catch(Exceptione){
e.printStackTrace();
}
try{
//十六進制轉成十進制
Stringhex=Integer.valueOf("FFFF",16).toString();
System.out.println(hex);
//八進制轉成十進制
Stringoct=Integer.valueOf("12",8).toString();
System.out.println(oct);
//二進制轉十進制
Stringbin=Integer.valueOf("0101",2).toString();
System.out.println(bin);
}catch(Exceptione){
e.printStackTrace();
}
『貳』 java中怎麼將十進制轉換為十六進制
用除商取余法
用十進制數除以16 記錄下商和余數
然後繼續用商去除以16記錄下商和余數,直到商為0
最後將余數逆序排列就可以了
比如十進制數33轉為十六進制
33/16=2 餘1
2/16=0 餘2
結果就是0x 21(十六進制以0x開頭)
『叄』 用JAVA將十進制轉換成十六進制
1、用Integer.toHexString方法即可將十進制裝成十六進制。
package com.test;
public class Test {
public static void main(String[] args) {
int i = 123;
System.out.println(Integer.toHexString(i));
}
}
『肆』 跪求「java中二進制怎麼表示」
java中二進制的表示:
1、Java中定義兩個數,然後分別列印出它們的二進製表示(例如7和-7):
System.out.println("Java二進制7:"+Integer.toBinaryString(7));
System.out.println("Java二進制-7:"+Integer.toBinaryString(-7));
輸出:
Java二進制7: 111
Java二進制-7:
7的二進制就是111
-7轉化二進制的過程:
(1)把-7轉化成7,二進制是 111
(2)Java中對於不滿32位的int二進制自動補齊,所以變成了 (29個0)111
(3)然後取反 (29個1)000
(4)然後加1 (29個1)001
(4)java進制轉換函數擴展閱讀
一、二進制的表示方法
有0,1組成。以0b開頭。
代碼的表示方法:
System.out.println(0b100)
二、不同進制的數據表現:
八進制:由0,1,....,7.以0開頭。
十進制:由0,1......,9.默認整數。
十六進制:由0,1,......9,a,b,c,d,e,f(大小寫均可)組成。
十進制:System.out.println(100);
八進制:System.out.println(0100);
十六進制: System.out.println(0x100);
『伍』 JAVA編程,請問怎麼將十進制數轉換成二進制輸出,又怎麼將二進制數轉換成十進制輸出
1、創建java類,TestNumConv.java;
『陸』 java中如何將字元串轉換為二進制數
方法一:開始,運行,輸入cmd,再輸入「systemInfo」,拉到上面看「系統類型」,X86的是32位機,64位的是X64(不過,系統是64位的,此處才顯示64位)。如果你的系統是64位的,會在「OS?名稱:?MicrosoftXP?Professional」一行後明確標示出「x64?Edition」,否則你的系統就是32位的。?
方法二:在開始>運行中輸入「winver」,如果你的系統是64位的,同樣會明確標示出「x64?Edition」。?
方法三:查看「控制面板」中的「系統屬性」?
單擊「開始」,然後單擊「運行」。鍵入?sysdm.cpl,然後單擊「確定」。單擊「常規」選項卡。操作系統顯示如下:?
對於?64?位版本的操作系統:「系統」下將顯示?Windows?XP?Professional?x64?Edition?版本?<?Year>。?
對於?32?位版本的操作系統:「系統」下將顯示?Windows?XP?Professional?版本?<?Year>。?注意<Year>?是一個表示年份的佔位符。?方法?四:查看「系統信息」窗口?
單擊「開始」,然後單擊「運行」。鍵入?winmsd.exe,然後單擊「確定」。?
當導航窗格中已選擇「系統摘要」,找到「詳細信息」窗格中「項目」下的「處理器」,然後記下該值。?
如果「處理器」對應的值以「x86」開頭,表明該計算機運行的是?32?位版的?Windows?操作系統
如果「處理器」對應的值以「ia64」或「AMD64」開頭,表明該計算機運行的是?64?位版的?Windows?操作系統?
右鍵打開我的電腦屬性,沒有「物理地址擴展」的是32位,有「物理地址擴展」的是64位如果這個方法無效,請嘗試其他方法。
『柒』 JAVA如何將10進制的int轉成16進制的int
使用java.math.BigInteger,
構造函數BigInteger(String val, int radix) :將指定基數的 BigInteger 的字元串表示形式轉換為 BigInteger。
new BigInteger("", 16).toString()即可
『捌』 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);
/*
『玖』 java中如何將十進制數字轉化成二進制
如果表達小於2^31-1的正數代碼如下:
public void binaryToDecimal(int n){
int t = 0; //用來記錄位數
int bin = 0; //用來記錄最後的二進制數
int r = 0; //用來存儲余數
while(n != 0){
r = n % 2;
n = n / 2;
bin += r * Math().pow(10,t);
t++;
}
System.out.println(bin);
}
使用字元串的拼接(+)來實現大於2^31-1的數,代碼如下:
public void binaryToDecimal(int n){
String str = "";
while(n!=0){
str = n%2+str;
n = n/2;
}
System.out.println(str);
}
可以右移後再與0x01進行&運算得到第一位的數字判斷判斷它的第幾位上是0,第幾位上是1,代碼如下:
class ByteMove
{
public static void main(String[] args)
{
int i = 7;
move(i);
}
static void move(int num){
for(int i= 0;i<6;i++){
System.out.println("第"+(i+1)+"位:" + (num >> i & 0x01));
}
}
}
『拾』 用java寫一個進制轉換的函數: convert(int n ):輸入一個十進制數n,將它轉換成R進制數輸出。
將十進制數裂禪N轉換為r進制的數,其轉換方法利用輾轉相除法:以N=3456,r=8為例轉換
以下是核心代碼,如果需要完整源文件的,留個郵箱給我。
package src;
import javax.swing.JOptionPane;
public class NumberConvert {
public static void main(String args[])
{
LinkedStack<String> stack = new LinkedStack<String>(); //創建空棧
String inputstr;
char charremainder;
int sourcedecimalnumber,conversion,remainder,business;
do
{
try
{
inputstr=JOptionPane.showInputDialog("請輸入你空悔需要轉換的十進制數:");
sourcedecimalnumber=Integer.parseInt(inputstr);
break;
}
catch (NumberFormatException exception)
{
JOptionPane.showMessageDialog(null,"請輸入數字(十進制數)!","提示信息",0);
}
}while(true);
do
{
try
{
do
{
inputstr=JOptionPane.showInputDialog("請輸入你需要轉換進制(2~16之間的進制數):");
conversion=Integer.parseInt(inputstr);
if (conversion>1 && conversion<17)
break;
else
JOptionPane.showMessageDialog(null,"請輸入2~16以內的數字!","提示信息",0);
}while (true);
break;
}
catch (NumberFormatException exception)
{
JOptionPane.showMessageDialog(null,"請輸入數字(所要斗源正轉換的進制數)!","提示信息",0);
}
}while(true);
business=sourcedecimalnumber;
while(business!=0)
{
remainder=business%conversion;
if(remainder>9)
remainder+=55;
else
remainder+=48;
charremainder=(char)remainder;
char [] chararray={charremainder};
stack.push(new String(chararray));
business/=conversion;
}
while(!stack.isEmpty())
{
System.out.print(stack.pop());
}
}
}