java進位,java進位轉換重要嗎

本文目錄一覽:

java中如何判斷數值是幾進位

java沒辦法判斷數字是幾進位,java只知道數字,對於java來講沒有進位的概念

我們可以通過java把一個數字n通過某種進位輸出,進位只是我們人腦中的概念,java並不知道,但是java會默認以十進位和我們交互,

比如說n,對於java來說就是n,沒有什麼進位的區別,如果n等於十進位的9那麼,對於我們來講可以讓java用十進位輸出也就是9,可以讓java用2進位輸出,也就是11101,也可以讓java用8進位輸出就是11,但是java並不知道這個數字到底是幾進位,

在我們需要輸入的時候我們可以告訴java這個數字需要以幾進位輸入,以ox開頭java將以16進位識別,以0開頭java將以8進位識別,普通數字java將以10進位識別

java十進位轉二進位代碼怎麼解決?

下面是根據十進位數轉二進位數的演算法所寫的一段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; i0; 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();

}

}

例如將十進位數1234.5轉成二進位數為:0100 1101 0010.1000

java,關於二進位和十六進位的數據轉換

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()

java中十六進位怎麼轉換為2進位

java十六進位轉換為2進位示例如下:

public class Hex2Binary

{

public static void main(String[] args)

{

String hexString = “ABCD”;

System.out.println(hexString2binaryString(hexString));

}

public static String hexString2binaryString(String hexString)

{

if (hexString == null || hexString.length() % 2 != 0)

return null;

String bString = “”, tmp;

for (int i = 0; i  hexString.length(); i++)

{

tmp = “0000”

+ Integer.toBinaryString(Integer.parseInt(hexString

.substring(i, i + 1), 16));

bString += tmp.substring(tmp.length() – 4);

}

return bString;

}

}

Java中怎麼表示八進位和十六進位?

八進位:int

a=031;

//8進位,以數字0開始。

十六進位:int

b=0x1B;

//16進位,以0x開始。

1、八進位數的表達方法:

如何表達一個八進位數呢?如果這個數是

876,我們可以斷定它不是八進位數,因為八進位

中不可能出7以上的阿拉伯數字。但如果這個數是123、是567,或12345670,那麼它是八進

數還是10進位數,都有可能。 所以規定,一個數如果要指明它採用八進位,必須在它前面

上一個0,如:123是十進位,但0123則表示採用八進位。這就是八進位數的表達方法。

2、十六進位數的表達方法

如果不使用特殊的書寫形式,16進位數也會和10進位相混。隨便一個數:9876,就看不出它是

16進位或10進位。

16進位數必須以

0x開頭。比如

0x1表示一個16進位數。而1則表示一個

進位。另外如:0xff,0xFF,0X102A,等等。其中的x也也不區分大小寫。(注意:0x中的0是數字

0,而不是字母O)

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:

11111111111111111111111111111001

可以看到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的二進位表示:11111111111111111111111111111110(這個二進位的後八位就是line1,可以直接列印的話Java把其當做了負數

-2)

Java中255的二進位表示:00000000000000000000000011111111(24個『0』,8個『1』)

做與後變為:00000000000000000000000011111110

這樣做與後表示的數就是正數了

254。可以想一下,假設每一行用2個位元組表示一個無符號數,那麼可以把每一行變成正整數用方法2怎麼做?

2.Java中的和

算術右移,向右移左邊補符號位

邏輯右移,向右移左邊補0

System.out.println(“Java二進位-7: “+Integer.toBinaryString(-7));

System.out.println(“-72: “+Integer.toBinaryString(-72));

System.out.println(“-72: “+Integer.toBinaryString(-72));輸出:

Java二進位-7: 11111111111111111111111111111001

-72: 11111111111111111111111111111110

-72: 111111111111111111111111111110 //正常應該這樣(00)111111111111111111111111111110左邊的兩個0不顯示

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288787.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-24 03:00
下一篇 2024-12-24 03:00

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論