Java-math-biginteger-tobytearray

提供:Dev Guides
移動先:案内検索

Java.math.BigInteger.toByteArray()メソッド

説明

  • java.math.BigInteger.toByteArray()*は、このBigIntegerの2の補数表現を含むバイト配列を返します。 バイト配列はビッグエンディアンのバイト順になります。最上位バイトは0番目の要素にあります。

配列には、少なくとも1つの符号ビットを含む、このBigIntegerを表すために必要な最小バイト数((ceil((this.bitLength()+ 1)/8))が含まれます。 この表現は、(byte [])コンストラクターと互換性があります。

宣言

以下は* java.math.BigInteger.toByteArray()*メソッドの宣言です。

public byte[] toByteArray()

パラメーター

NA

戻り値

このメソッドは、このBigIntegerの2の補数表現を含むバイト配列を返します。

例外

NA

次の例は、math.BigInteger.toByteArray()メソッドの使用法を示しています。

package com.finddevguides;

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\n", 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