當前位置:首頁 » 編程語言 » java進制轉換

java進制轉換

發布時間: 2022-01-14 17:59:28

java十進制數轉換成二進制,8進制以及16進制二進制轉十進制

直接運行得了
import java.io.*;
public class test
{
public static void main(String arg[])
{
test a=new test();
System.out.print("請輸入一個十進制整數:");
try
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int i=Integer.parseInt(br.readLine());
System.out.print("該數的二進制數是:");
a.BinaryString(i);
System.out.println();
System.out.print("該數的八進制數是:");
a.OctalString(i);
System.out.println();
System.out.print("該數的十六進制數是:");
a.HexString(i);
System.out.println();

System.out.println(Integer.valueOf("101101",2).toString());//2進制轉換為10進制
}catch(IOException e)
{
System.err.println(e.toString());
}

}
public void BinaryString(int x)
{
if(x>0)
BinaryString(x/2);
else
return;
System.out.print(x%2);
}
public void OctalString(int x)
{
if(x>0)
OctalString(x/8);
else
return;
System.out.print(x%8);
}
public void HexString(int x)
{
if(x>0)
BinaryString(x/16);
else
return;
if(x%16==10)
{
System.out.print("A");
}
else if(x%16==11)
{
System.out.print("B");
}
else if(x%16==12)
{
System.out.print("C");
}
else if(x%16==13)
{
System.out.print("D");
}
else if(x%16==14)
{
System.out.print("E");
}
else if(x%16==15)
{
System.out.print("F");
}
else
System.out.print(x%16);
}
}

㈡ 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 進制轉換

/*
*
* 說明在第一個文本框中輸入你要轉換的內容,點擊「轉換」,就會在第二個文本框中出現,轉換後的二進制碼。
* 這時也可以點擊「還原」按鈕,把第二個文本框中的二進制碼還原為,它的真實的字元。當然你也可以直接在第
* 二個文本框中寫出你要還原的二進制碼,然後點擊「還原」按鈕,就可以把第二個文本框中的二進制友還原為
* 它的真實的字元。
*
*
* 做得很急,最近在考試呀,所以代碼可能有bug,要是代碼有什麼問題,可以聯系我。
* 或是你想要的功能還沒有的話,我可以幫你升級。^_^哈哈。想必你是在追女生吧,用這個來給她寫情話不錯哦
* 。不過那女生也要會一點點程序哦,不然,她拿到你的二進制碼也沒辦法知道它是什麼意思,呵呵
*/
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Print {
public static void main(String[] args) {
new Win();
}
}

class Win {
JTextArea jTextArea = new JTextArea();//輸入框
JTextArea jTextArea2 = new JTextArea();//還原框
JTextArea jTextArea1 = new JTextArea();//二進制框
JLabel jLabel = new JLabel("請在下面輸入你要轉換的內容:");
JLabel jLabe2 = new JLabel("轉換後的二進制碼為>>>>");
JLabel jLabe3 = new JLabel("還原二進制碼後>>>>");
JButton jButton = new JButton("轉換");
JButton jButton1 = new JButton("還原");

public Win() {
JFrame jFrame = new JFrame("窗口");

jFrame.setLayout(null);

jTextArea2.setBounds(10,430,450,80);
jFrame.getContentPane().add(jTextArea2);

jLabe3.setBounds(90,390,1000,20);
jLabe3.setForeground(Color.red);
jFrame.getContentPane().add(jLabe3);

jButton1.setBounds(10, 380, 60, 40);
jFrame.getContentPane().add(jButton1);
jButton1.addActionListener(new Lis());

jLabe2.setForeground(Color.red);
jLabe2.setBounds(80, 150, 1000, 20);
jFrame.getContentPane().add(jLabe2);

jButton.setBounds(10, 140, 60, 40);
jFrame.getContentPane().add(jButton);
jButton.addActionListener(new Lis());

jLabel.setBounds(3, 20, 200, 15);
jFrame.getContentPane().add(jLabel);

jTextArea.setBounds(10, 40, 450, 80);
jFrame.getContentPane().add(jTextArea);
jTextArea1.setBounds(10, 190, 450, 180);
jFrame.getContentPane().add(jTextArea1);

jFrame.setBounds(200, 50, 500, 600);
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

// 轉換為二進制
String ss = "";
public String getBinaryString(String str) {
char[] cstr = str.toCharArray();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < cstr.length; i++) {
if (Character.isDigit(cstr[i]) || Character.isLetter(cstr[i])
|| Character.getType(cstr[i]) == 5) {
sb.append(Integer.toBinaryString(cstr[i]) + " ");
} else {
sb.append(cstr[i] + " ");
}
}

// ss = sb.toString();// 沒有換行之前

int n = 60;
while (n < sb.length()) {
sb.insert(n, "\n");
n = n + 60;
}

return sb.toString();
}

//偵聽處理
class Lis implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jButton) {
String str = jTextArea.getText();
jTextArea1.setText(getBinaryString(str));
if (jTextArea1.getLineCount() > 9) {
JOptionPane.showMessageDialog(null,"在顯示二進制碼時,數據量太大,顯示不完全,你可以分幾次轉換!",
"有錯誤!!!!!!!!",1);
}
} else {
//要從jTextAreal中得到內容
StringBuffer sb = new StringBuffer(jTextArea1.getText());
for(int i = 0; i < sb.length(); i++) {
if (sb.charAt(i) == '\n')
sb.deleteCharAt(i);//把所有的回車符先去掉,不然不好做事
}

String[] lo = sb.toString().split(" ");
StringBuffer sb1 = new StringBuffer();
char c = '\0';
for (int i = 0; i < lo.length; i++) {
if (lo[i].length() > 2)//是文字,字母,數字時
c = (char)Integer.valueOf(lo[i], 2).intValue();
else if (lo[i].equals("")) {//當用戶輸入的是空格時
c = ' ';
} else //是標點時
c = lo[i].toCharArray()[0];
sb1.append(c);
}

int n = 40;
while (n < sb1.length()) {
sb1.insert(n, "\n");
n = n +40;
}
jTextArea2.setText(sb1.toString());
}
}
}

}

㈣ 用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里的十二進制,六進制,二進制,分別怎麼轉換

轉換為2的幾何級數倍進制比較容易,其他的就不方便了。
先說和10進制的轉換:
倒序將2進制數編冪數,例如10101010從後向前冪數依次為7654321,所以它轉換為10進制就是1*2^7+0*2^6+1*2^5+0^2^4+1*2^3+0^2^2+1^2^1+0^2^0=170,這種演算法適用於將任意進制轉換為10進制,只要將底數替換即可。

下面說2的幾何級數倍的演算法:
一般就是將2進制按2的級數進行分段,比方說8進制(8是2的3次方),將2進制分為每3位一段進行轉換,每段單獨按十進制轉換即可。
10101010,分為10|101|010,然後每段進行單獨轉換,10轉換後為2,101轉換後為5,010轉換後為2,所以10101010(2)=252(8)。

其他進制一般演算法就是先將2進制轉換為10進制,再用短除法轉換為其他進制,短除法我記不清怎麼個演算法了,並不是算公約數之類的那個短除法,借位演算法比較特殊,只不過最後余數作為最後一位。
例如170(10)進制就使用170=332(7)

㈥ 用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進制轉換代碼

下面是轉換的方法
int n1 = 14;
//十進制轉成十六進制:
Integer.toHexString(n1);
//十進制轉成八進制
Integer.toOctalString(n1);
//十進制轉成二進制
Integer.toBinaryString(12);

//十六進制轉成十進制
Integer.valueOf("FFFF",16).toString();
//十六進制轉成二進制
Integer.toBinaryString(Integer.valueOf("FFFF",16));
//十六進制轉成八進制
Integer.toOctalString(Integer.valueOf("FFFF",16));

//八進制轉成十進制
Integer.valueOf("576",8).toString();
//八進制轉成二進制
Integer.toBinaryString(Integer.valueOf("23",8));
//八進制轉成十六進制
Integer.toHexString(Integer.valueOf("23",8));

//二進制轉十進制
Integer.valueOf("0101",2).toString();
//二進制轉八進制
Integer.toOctalString(Integer.parseInt("0101", 2));
//二進制轉十六進制
Integer.toHexString(Integer.parseInt("0101", 2));

㈧ Java 進制轉換

public static void main(String[] args) {
int x = (int)(Math.random()*1000+1);
System.out.println("隨機數:"+x);
String allNumber = Integer.toString(x,3);
String[] tmmp = allNumber.split("");
String y = "";
for(String str : tmmp){
if (y.length() == 0 ){
y = y + str;
}else{
y=y+","+str;
}
}
System.out.println("生成的三進制:"+y);

// 逆序輸出
StringBuffer sb = new StringBuffer(allNumber);
String tmpx = sb.reverse().toString();
System.out.println("逆序輸出結果:"+tmpx);
//計算十六進制
String hexString = Integer.toString(Integer.parseInt(tmpx),16);
System.out.println("hexString="+hexString);
// 都換成十進制進行比較
int intB = Integer.valueOf(hexString,16);
int intA = Integer.valueOf(y,3);
if(intA>intB){
System.out.println("A>B");
}else if(intA==intB){
System.out.println("A=B");
}else{
System.out.println("A<B");
}

㈨ java中的二進制轉換

上面的:
下面的是20,表示將數字5轉換為二進制左移2位
計算過程:5 << 2
首先把5轉換為二進制數字0000 0000 0000 0000 0000 0000 0000 0101,然後把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,最後在低位(右側)的兩個空位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0001 0100,則轉換為十進制是20

熱點內容
單片機android 發布:2024-09-20 09:07:24 瀏覽:760
如何提高三星a7安卓版本 發布:2024-09-20 08:42:35 瀏覽:661
如何更換伺服器網站 發布:2024-09-20 08:42:34 瀏覽:308
子彈演算法 發布:2024-09-20 08:41:55 瀏覽:286
手機版網易我的世界伺服器推薦 發布:2024-09-20 08:41:52 瀏覽:814
安卓x7怎麼邊打游戲邊看視頻 發布:2024-09-20 08:41:52 瀏覽:160
sql資料庫安全 發布:2024-09-20 08:31:32 瀏覽:91
蘋果連接id伺服器出錯是怎麼回事 發布:2024-09-20 08:01:07 瀏覽:505
編程鍵是什麼 發布:2024-09-20 07:52:47 瀏覽:655
學考密碼重置要求的證件是什麼 發布:2024-09-20 07:19:46 瀏覽:479