JavaA2Z

KAB-studio > プログラミング > JavaA2Z > unsignedとは

unsigned

日本語 符号なし、無符号
英語 unsigned
ふりがな あんさいんど
フリガナ アンサインド

解説

符号がないこと。
整数の前に付けることで、整数符号なしにすることのできる予約語……ではない。
 
Javaには存在しない予約語
C++言語には存在する予約語
C++言語では、int等の整数の前に付けることで、「符号なし整数値」として格納することができるようになる。
符号を持たないため、マイナスの値は格納できなくなるが、符号に使用している1ビットを数値表現に使用できるため、より大きな値を格納できるようになる。
C++言語long(注:C++言語longは4バイトであり、Javaintに当たる)であれば、-2147483648~2147483647までの範囲となるのが、unsigned longであれば、符号に使用されている1ビットを数値表現に使用できるため、0~4294967295と、倍の数値を表現することができる。
そのため、マイナスの値を格納せず、その分大きな値を格納したい場合に使用されてきた。
 
Javaには「unsigned」という予約語は存在しないし、また、同等の機能もない。
charを除く整数は全て符号を持ち、char符号を持たない。これを変更する方法はない。
これは、元々この符号のありなしによる処理が分かりづらく、しばしばバグの原因であり、また、こういったビット操作をJavaでは嫌う傾向にあるためである。
代替として、Javalongは8バイトサイズであり、またBigDecimalクラスもあるため、大きな値を使用したい場合にはlongもしくはBigDecimalクラスを使用するのがいいだろう。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // unsignedは予約語として存在しません。
        // unsigned int i = 100;
        // コンパイルエラー:
        // キーワード "int" に構文エラーがあります。正しくは "=", "*=", "/=", "%=", "+=", "-=", "<<=", ">>=", ">>>=", "&=", "^=", "|=", "++", "--" です。

        // 予約語ではないので変数名として使用することも
        // できます。勧めませんが。
        int unsigned = -100;
        System.out.println( unsigned );
        // -100
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // unsignedは予約語として存在しません。
        // unsigned int i = 100;
        // コンパイルエラー:
        // キーワード "int" に構文エラーがあります。正しくは "=", "*=", "/=", "%=", "+=", "-=", "<<=", ">>=", ">>>=", "&=", "^=", "|=", "++", "--" です。

        // 予約語ではないので変数名として使用することも
        // できます。勧めませんが。
        int unsigned = -100;
        System.out.println( unsigned );
        // -100
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/10/20
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。