數字系統有四種:二進位、八進位、十進位和十六進位,基底值分別為 2、8、10 和 16。基值取決於數字系統包含的位數。例如,二進制數係統僅包含 0 和 1 兩個數字,因此其基數為 2。
在本文中,我們將討論十六進制和十進制數字系統。另外,我們將編寫java程式將十六進位數轉換為十進位數。
它代表0到9、A到F的數字。總共有16個數字,它的基底值也是16。單一數字的權重是16的冪,每個數字都是16倍比上一張重。 12A16、34B16、45C16 是十六進位的幾個範例。在計算機中,顏色代碼通常以十六進制形式編寫。
假設我們必須儲存一個很大的十進制值,如果我們將它儲存在二進位計數系統中,那麼二進位字串可能會變得很長。在這種情況下,我們可以使用十六進位數字系統,可以將 4 位元二進位儲存為 1 位元。它縮短了位元的長度。
它是最常用的數字系統。它有從 0 到 9 的 10 位數字。因此,它的基底值為 10。如果沒有提到數字的基值,則認為該數字是 10。單一數字的權重為 10 的冪,每個數字都是 10 倍比上一篇更有分量。例如1010、43110、98010等
下表表示所有十六進位數字的二進位和十進位值 -
二進位 |
#十進位 |
#十六進位 |
---|---|---|
0001 |
#1 |
1 |
0010 |
#2 |
2 |
0011 |
#3 |
3 |
0100 |
#4 |
4 |
0101 |
#5 |
5 |
0110 |
#6 |
6 |
0111 |
#7 |
7 |
1000 |
#8 |
8 |
1001 |
#9 |
9 |
1010 |
#10 |
#A |
1011 |
#11 |
B |
1100 |
#12 |
#C |
1101 |
#13 |
#D |
1110 |
#14 |
#E |
1111 |
#15 |
#F |
讓我們了解如何將十六進位轉換為十進位。
將十六進位 (54A)16 轉換為十進位 -
我們可以透過將每個數字乘以 16n-1 將其轉換為十進制,其中 n 是位數。
(54A)16 = 5 * 163-1 4 * 162-1 A * 161-1
= 5 * 162 4 * 161 10 * 160 【A = 10 的十進位看表】
= 5 * 256 64 10 [160 等於 1]
= 1280 74
= 1354
現在,我們將看到一個java程序,我們將在其中應用上述邏輯將十六進制轉換為十進制。
它是「Integer」類別的靜態方法,根據指定的基數傳回一個十進位值。它在“java.lang”包中可用。
Integer.parseInt("String", base);
String - 要轉換的值
#Base - 給定值根據給定基數進行轉換
public class Conversion { public static void main(String args[]) { // Converting and storing hexadecimal value to dec1 and dec2 with base 16 int dec1 = Integer.parseInt("54A", 16); int dec2 = Integer.parseInt("41C", 16); System.out.println("Decimal value of given Hexadecimal: " + dec1); System.out.println("Decimal value of given Hexadecimal: " + dec2); } }
Decimal value of given Hexadecimal: 1354 Decimal value of given Hexadecimal: 1052
在這個方法中,我們將建立一個使用者定義的方法 cnvrt() 以及參數「hexNum」。我們將聲明並初始化“hexStr”,它將以字串的形式儲存所有十六進位數字。然後,我們將執行一個 for 循環,直到參數「hexNum」的長度。在該循環中,我們將從“hexStr”中獲取字元及其索引,然後套用轉換邏輯。
在主方法中,我們將使用不同的參數呼叫方法「cnvrt()」。
public class Conversion { public static void cnvrt(String hexNum) { // storing all the hexadecimal digits to this string String hexStr = "0123456789ABCDEF"; // converting given argument to uppercase hexNum = hexNum.toUpperCase(); int dec = 0; for (int i = 0; i < hexNum.length(); i++) { char ch = hexNum.charAt(i); // fetching characters sequentially int index = hexStr.indexOf(ch); // fetching index of characters dec = 16 * dec + index; // applying the logic of conversion } System.out.println("Decimal value of given Hexadecimal: " + dec); } public static void main(String args[]) { // calling the function with arguments cnvrt("54A"); cnvrt("41C"); } }
Decimal value of given Hexadecimal: 1354 Decimal value of given Hexadecimal: 1052
在本文中,我們了解了數字系統的類型。這些數字系統是任何數學運算的基礎。另外,也討論了兩種製作java程式將十六進位數轉換為十進位數的方法。
以上是Java程式:十六進位轉十進位轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!