Javaにunsignedはない|int型/long型で代替実現する方法について解説!
  • facebookページ
  • twitterページ
  • 2021.02.25

    Javaにunsignedはない|int型/long型で代替実現する方法について解説!

    Javaにunsignedはない

    JavaにはC言語のようにunsignedは用意されていません。

    Long・Integerのメソッドでunsignedを実現

    変数に大きな値を格納する必要がある場合は、「int型」か「long型」を使用しましょう。

    各データ型に用意されているメソッドを使うことで、符号なし整数とみなして計算できます。

    Java SE 8以降では、intデータ型を使って、符号なし32ビットの整数を表せます。

    また、同じくJava SE 8以降でlongデータ型を使って、符号なし64ビットを表すことが可能です。

    具体的に使用できるメソッドは次の通りです。

    int型・long型のメソッド
    • compareUnsignedメソッド:2つのint値(long値)を符号なしとして処理して数値的に比較
    • divideUnsignedメソッド:第1引数を第2引数で除算した符号なしの商を返す。各引数と結果は符号なしの値として解釈される
    • remainderUnsignedメソッド:第1引数を第2引数で割った符号なしの余りを返す。各引数と結果は符号なしの値として解釈される
    • toUnsignedStringメソッド:引数の文字列表現を、符号なし10進値として返す
    • parseUnsignedInt(parseUnsignedLong)メソッド:文字列の引数を符号なし10進数の整数として構文解析

    参考:Integer (Java Platform SE 8 )
    参考:Long (Java Platform SE 8 )

    それぞれのメソッドを使って動作を確認してみました。

    どのメソッドも、符号なしで計算できているのがわかりますね。

    このように、int型・long型のメソッドを活用することで、unsignedを擬似的に実現できます。

    Java 9からUnsignedクラスが導入

    Java 9から新しくUnsignedクラスが導入されており、値が符号なしデータ型であることを示します。

    詳しくは、Javaのリファレンスを参考にしてみてくださいね。

    参考:Unsigned (Java SE 9 & JDK 9 )



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE