符号
日本語 | 符号、正負、プラスマイナス |
英語 | sign |
ふりがな | ふごう |
フリガナ | フゴウ |
「+」と「-」、「正」と「負」、「プラス」と「マイナス」のこと。
整数及び浮動小数点は符号を持つ。
int等の整数型や、double等の浮動小数点型の変数は、プラスの値も、マイナスの値も格納することができる。
ただし、整数型のうち、charだけは符号を持たない。
これは、charに格納する値は「文字を表す16進数整数値」という意味があり、数値計算が目的ではないため、符号が必要ないためである。
ビット的には、整数型は「2の補数」を使用して、浮動小数点型は1ビットのフラグを使用してプラスとマイナスを表現する。実質的にそれぞれ1ビットずつ使用することになる。
この1ビットがあれば、整数型であれば「倍の値」を表現できる。intであれば、-2147483648~2147483647までの範囲となるのが、符号に使用されている1ビットを数値表現に使用できれば、0~4294967295と、倍の数値を表現することができる。
が、Javaには「型の符号をなくす方法」(C++言語のunsigned)は存在しないため、符号用のビットを数値表現に使用することはできない。
大きな値が必要な場合には、素直にlongかBigDecimalクラスを使用すること。
広義には、「符号」とは「ある意味を持つ特殊な値」を指す。
ただし、「エンコード」を「符号化」と訳すように、この場合の「符号」とは「code」(コード)のことであり、「sign」のことではない。
同じ「符号」という日本語だが、別と考えた方がいいだろう。
整数及び浮動小数点は符号を持つ。
int等の整数型や、double等の浮動小数点型の変数は、プラスの値も、マイナスの値も格納することができる。
ただし、整数型のうち、charだけは符号を持たない。
これは、charに格納する値は「文字を表す16進数整数値」という意味があり、数値計算が目的ではないため、符号が必要ないためである。
ビット的には、整数型は「2の補数」を使用して、浮動小数点型は1ビットのフラグを使用してプラスとマイナスを表現する。実質的にそれぞれ1ビットずつ使用することになる。
この1ビットがあれば、整数型であれば「倍の値」を表現できる。intであれば、-2147483648~2147483647までの範囲となるのが、符号に使用されている1ビットを数値表現に使用できれば、0~4294967295と、倍の数値を表現することができる。
が、Javaには「型の符号をなくす方法」(C++言語のunsigned)は存在しないため、符号用のビットを数値表現に使用することはできない。
大きな値が必要な場合には、素直にlongかBigDecimalクラスを使用すること。
広義には、「符号」とは「ある意味を持つ特殊な値」を指す。
ただし、「エンコード」を「符号化」と訳すように、この場合の「符号」とは「code」(コード)のことであり、「sign」のことではない。
同じ「符号」という日本語だが、別と考えた方がいいだろう。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// 整数型にはプラスもマイナスも入れられます。
int i = 100;
System.out.println( i );
// 100
i = -100;
System.out.println( i );
// -100
// 浮動小数点型にも入れられます。
double d = 100.5;
System.out.println( d );
// 100.5
d = -100.5;
System.out.println( d );
// -100.5
// ただし、charだけは符号を持たないため、
// マイナスの値を入れられません。
char ch = 0x3042; // 「あ」
System.out.println( ch );
// あ
// ch = -100;
// コンパイルエラー:
// 型の不一致: int から char には変換できません。
}
}
public class Sample
{
public static void main( String[] args )
{
// 整数型にはプラスもマイナスも入れられます。
int i = 100;
System.out.println( i );
// 100
i = -100;
System.out.println( i );
// -100
// 浮動小数点型にも入れられます。
double d = 100.5;
System.out.println( d );
// 100.5
d = -100.5;
System.out.println( d );
// -100.5
// ただし、charだけは符号を持たないため、
// マイナスの値を入れられません。
char ch = 0x3042; // 「あ」
System.out.println( ch );
// あ
// ch = -100;
// コンパイルエラー:
// 型の不一致: int から char には変換できません。
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // 整数型にはプラスもマイナスも入れられます。 int i = 100; System.out.println( i ); // 100 i = -100; System.out.println( i ); // -100 // 浮動小数点型にも入れられます。 double d = 100.5; System.out.println( d ); // 100.5 d = -100.5; System.out.println( d ); // -100.5 // ただし、charだけは符号を持たないため、 // マイナスの値を入れられません。 char ch = 0x3042; // 「あ」 System.out.println( ch ); // あ // ch = -100; // コンパイルエラー: // 型の不一致: int から char には変換できません。 } }