byte
日本語 | バイト型 |
英語 | byte |
ふりがな | ばいと |
フリガナ | バイト |
プリミティブ型のひとつ。
整数値を格納するための型。
ラッパークラスはByteクラス。
byte型で宣言された変数は、8ビット(1バイト)分のメモリ領域を使用する。
左端のビットは正負のフラグとなり、0がプラス、1がマイナスを表す。
残りの7ビットと合わせて、-128~127の整数値を格納することができる(マイナスの場合は2の補数を使用する)。
整数値を扱いたい場合は通常int型を使用する。計算目的でbyte型を使用する機会は少ない。
>>演算子等、一部の演算子はbyte型をint型へキャストする(数値格上げ変換)ため、演算を行う際は素直にint型を使用した方がいいだろう。
プリミティブ型の中で最も小さな型。
その名の通り「1バイト」のデータを格納するための型。
データとしての最も小さな単位は「ビット」だが、ビットでは小さすぎてしまうため、プログラムで扱う際にはバイト単位で扱うことが多い。その際にこの型を使用する。
たとえば、文字コードの変換を行う際に、StringクラスのgetBytes()メソッドを使用して、byte型配列の形式で文字列の「生のデータ」を取得する。
その他、バイナリーファイルのデータを扱う時など、データを生で扱う時やビット単位で処理したい時などに使用することが多い型である。
整数値を格納するための型。
ラッパークラスはByteクラス。
byte型で宣言された変数は、8ビット(1バイト)分のメモリ領域を使用する。
左端のビットは正負のフラグとなり、0がプラス、1がマイナスを表す。
残りの7ビットと合わせて、-128~127の整数値を格納することができる(マイナスの場合は2の補数を使用する)。
整数値を扱いたい場合は通常int型を使用する。計算目的でbyte型を使用する機会は少ない。
>>演算子等、一部の演算子はbyte型をint型へキャストする(数値格上げ変換)ため、演算を行う際は素直にint型を使用した方がいいだろう。
プリミティブ型の中で最も小さな型。
その名の通り「1バイト」のデータを格納するための型。
データとしての最も小さな単位は「ビット」だが、ビットでは小さすぎてしまうため、プログラムで扱う際にはバイト単位で扱うことが多い。その際にこの型を使用する。
たとえば、文字コードの変換を行う際に、StringクラスのgetBytes()メソッドを使用して、byte型配列の形式で文字列の「生のデータ」を取得する。
その他、バイナリーファイルのデータを扱う時など、データを生で扱う時やビット単位で処理したい時などに使用することが多い型である。
参考サイト
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// byte型の変数を宣言します。
byte bt;
// メモリ上に8ビットの領域が確保されました。
// ここに整数値100を格納します。
bt = 100;
// それを出力します。
System.out.println( bt );
// 100
// byte型変数に格納された「100」がどのように
// ビットとして格納されているか見てみます。
outputByteBit( bt );
// 01100100
// このように、「100」というbyte型整数は、
// 「01100100」という「0か1」を8個並べた形で
// 格納されています。
// 最大値と最小値はbyteクラスのstaticフィールド
// として宣言されているのでそれを使いましょう。
bt = Byte.MAX_VALUE;
System.out.println( bt );
outputByteBit( bt );
// 127
// 01111111
bt = Byte.MIN_VALUE;
System.out.println( bt );
outputByteBit( bt );
// -128
// 10000000
}
/**
* byte型変数の中身をビット形式で出力します。
*/
private static void outputByteBit( byte bt )
{
byte flag = 1;
StringBuffer strbuf = new StringBuffer();
// 全ビットを右からチェックします。
for( int iF1 = 0; iF1 < 8; ++iF1 )
{
// 取得した順に出力すると逆順になるので、
// 取得した値を頭に挿入していきます。
if( ( bt & flag ) == 0 )
{
strbuf.insert( 0, "0" );
}
else
{
strbuf.insert( 0, "1" );
}
// 2倍することでビットシフトします。
flag *= 2;
// (<<演算子を使用するとint型にキャスト
// されるので*演算子を使用しています)
}
System.out.println( strbuf );
}
}
public class Sample
{
public static void main( String[] args )
{
// byte型の変数を宣言します。
byte bt;
// メモリ上に8ビットの領域が確保されました。
// ここに整数値100を格納します。
bt = 100;
// それを出力します。
System.out.println( bt );
// 100
// byte型変数に格納された「100」がどのように
// ビットとして格納されているか見てみます。
outputByteBit( bt );
// 01100100
// このように、「100」というbyte型整数は、
// 「01100100」という「0か1」を8個並べた形で
// 格納されています。
// 最大値と最小値はbyteクラスのstaticフィールド
// として宣言されているのでそれを使いましょう。
bt = Byte.MAX_VALUE;
System.out.println( bt );
outputByteBit( bt );
// 127
// 01111111
bt = Byte.MIN_VALUE;
System.out.println( bt );
outputByteBit( bt );
// -128
// 10000000
}
/**
* byte型変数の中身をビット形式で出力します。
*/
private static void outputByteBit( byte bt )
{
byte flag = 1;
StringBuffer strbuf = new StringBuffer();
// 全ビットを右からチェックします。
for( int iF1 = 0; iF1 < 8; ++iF1 )
{
// 取得した順に出力すると逆順になるので、
// 取得した値を頭に挿入していきます。
if( ( bt & flag ) == 0 )
{
strbuf.insert( 0, "0" );
}
else
{
strbuf.insert( 0, "1" );
}
// 2倍することでビットシフトします。
flag *= 2;
// (<<演算子を使用するとint型にキャスト
// されるので*演算子を使用しています)
}
System.out.println( strbuf );
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // byte型の変数を宣言します。 byte bt; // メモリ上に8ビットの領域が確保されました。 // ここに整数値100を格納します。 bt = 100; // それを出力します。 System.out.println( bt ); // 100 // byte型変数に格納された「100」がどのように // ビットとして格納されているか見てみます。 outputByteBit( bt ); // 01100100 // このように、「100」というbyte型整数は、 // 「01100100」という「0か1」を8個並べた形で // 格納されています。 // 最大値と最小値はbyteクラスのstaticフィールド // として宣言されているのでそれを使いましょう。 bt = Byte.MAX_VALUE; System.out.println( bt ); outputByteBit( bt ); // 127 // 01111111 bt = Byte.MIN_VALUE; System.out.println( bt ); outputByteBit( bt ); // -128 // 10000000 } /** * byte型変数の中身をビット形式で出力します。 */ private static void outputByteBit( byte bt ) { byte flag = 1; StringBuffer strbuf = new StringBuffer(); // 全ビットを右からチェックします。 for( int iF1 = 0; iF1 < 8; ++iF1 ) { // 取得した順に出力すると逆順になるので、 // 取得した値を頭に挿入していきます。 if( ( bt & flag ) == 0 ) { strbuf.insert( 0, "0" ); } else { strbuf.insert( 0, "1" ); } // 2倍することでビットシフトします。 flag *= 2; // (<<演算子を使用するとint型にキャスト // されるので*演算子を使用しています) } System.out.println( strbuf ); } }
「みだし」に含まれているページ
「解説」に含まれているページ
- BufferedInputStream
- byte
- Byte
- ByteArrayInputStream
- ByteArrayOutputStream
- FileInputStream
- FileOutputStream
- getBytes
- IANA
- InputStream
- InputStreamReader
- ISO-8859-1
- LineNumberInputStream
- OutputStream
- OutputStreamWriter
- PrintStream
- PushbackInputStream
- PushbackReader
- StringBufferInputStream
- switchステートメント
- UDP
- Unicode
- Writer
- 「F」
- ストリーム
- ナローイング変換
- バイト
- バイトストリーム
- バイト入力ストリーム
- バイト出力ストリーム
- プリミティブ型
- ラッパー
- ワイドニング変換
- 予約語
- 型
- 定数式
- 数値格上げ変換
- 整数
- 整数リテラル
- 文字コード
- 符号付き
- 自然数
「サンプルプログラムとか」に含まれているページ
- ]
- ASCII
- BufferedInputStream
- BufferedOutputStream
- BufferedReader
- BufferedWriter
- byte
- Byte
- ByteArrayInputStream
- ByteArrayOutputStream
- const
- CP932
- DataInputStream
- DataOutputStream
- DOM
- DTD
- EUC
- EUC-JP
- FilterInputStream
- FilterOutputStream
- getBytes
- IANA
- InputStream
- InputStreamReader
- ISO-10646-UCS-2
- ISO-2022-JP
- ISO-8859-1
- Node
- ObjectInputStream
- ObjectOutputStream
- OutputStreamWriter
- PrintStream
- PushbackInputStream
- SequenceInputStream
- Shift_JIS
- switch
- switchステートメント
- UCS-2
- UDP
- Unicode
- US-ASCII
- UTF-8
- whileステートメント
- Windows-31J
- Xerces
- XML
- ZIP
- 「-」
- 「~」
- エイリアス
- エンコーディング
- エンコード
- シフトJIS
- ダンプ
- デコード
- ナローイング変換
- ブロックします
- プリミティブ型
- メソッド呼び出し変換
- ラッパー
- リフレクション
- ワイドニング変換
- 丸数字
- 二項演算子
- 半角カタカナ
- 型
- 定数式
- 数値格上げ変換
- 整数リテラル
- 文字コード
- 文字リテラル
- 文字化け
- 標準入出力