位置:首頁 > Java技術 > Java.math包 > Java.math.BigInteger.toByteArray()方法實例

Java.math.BigInteger.toByteArray()方法實例

java.math.BigInteger.toByteArray() 返回一個包含此BigInteger的二進製補碼表示的字節數組。字節數組將在big-endian字節順序:最顯著字節在第零個元素。

該數組將包含最小數目來表示此BigInteger所需的字節,其中至少有一個符號位,如(ceil((this.bitLength() + 1)/8))。這表示是與 (byte[ ]) 構造兼容。

聲明

以下是java.math.BigInteger.toByteArray()方法的聲明

public byte[] toByteArray()

參數

  • NA

返回值

這個方法返回一個包含此BigInteger的二進製補碼表示的字節數組。

異常

  • NA

例子

下麵的例子顯示math.BigInteger.toByteArray()方法的用法

package com.yiibai;

import java.math.*;

public class BigIntegerDemo {

public static void main(String[] args) {

	// create 2 BigInteger objects
        BigInteger bi1, bi2;

	// create 2 byte arrays
	byte b1[], b2[];

	// create and assign value to byte array b3
	byte b3[] = { 0x1, 0x00, 0x00 };

	bi1 = new BigInteger("10");
	bi2 = new BigInteger(b3); // using byte[] constructor of BigInteger

	// assign byte array representation of bi1, bi2 to b1, b2
        b1 = bi1.toByteArray();
	b2 = bi2.toByteArray();

	String str1 = "Byte array representation of " + bi1 + " is: ";

	System.out.println( str1 );

	// print byte array b1 using for loop
	for (int i=0; i  < b1.length; i++)
	{
	   System.out.format("0x%02X
", b1[i]);
	}

	String str2 = "Byte array representation of " + bi2 + " is: ";

	System.out.println( str2 );

	// print byte array b2 using for loop
	for (int j=0; j < b2.length; j++)
	{
	   System.out.format("0x%02X ", b2[j]);
	}
   }
}

讓我們編譯和運行上麵的程序,這將產生以下結果:

Byte array representation of 10 is:
0x0A
Byte array representation of 65536 is:
0x01 0x00 0x00