符号
| 日本語 | 符号、正負、プラスマイナス |
| 英語 | 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 には変換できません。
}
}




