Javaのbyte型とは
byte型とは、Java言語で使われるデータ型のことです。
byte型で変数を宣言すると、消費するメモリが1バイトになります。
扱える値は、-128〜127の範囲です。
その他のデータ型と比較してみると、次の通りです。
数値型としては、一番小さな範囲を扱うデータ型であるのがわかります。
データ型 | 種類 | ビット数 | 範囲 |
---|---|---|---|
byte | 数値 | 1バイト(8ビット) | -128〜127(約128) |
short | 数値 | 2バイト(16ビット) | -32,768〜32,767(約3.2万) |
int | 数値 | 4バイト(32ビット) | -2,147,483,648〜2,147,483,647(約21億) |
long | 数値 | 8バイト(64ビット) | -9,223,372,036,854,775,808〜9,223,372,036,854,775,807(約900京) |
float | 浮動小数点 | 4バイト(32ビット) | ±3.40282347E+38~ 1.40239846E-45 |
double | 浮動小数点 | 8バイト(64ビット) | ±1.79769313486231570E+308~±4.94065645841246544E-324 |
boolean | 真偽値 | 1ビット | true or false |
では、byte型の使い方を見ていきましょう!
byte型の使い方
byte型もデータ型の1つなので、他のデータ型同様、宣言して使います。
使う場合は、次のように記述しましょう。
byte 変数名 = 値;
■記述例 public class Main{ public static void main(String[] args){ byte b = 10; System.out.println(b); } } ■実行結果 mbp:desktop potepan$ java Main 10
また、配列変数としても宣言可能です。
■記述例 public class Main{ public static void main(String[] args){ byte[] bAry = new byte[3]; bAry[0] = 10; bAry[1] = 20; bAry[2] = 30; System.out.println(bAry[1]); //以下の書き方でもOK byte[] bAry = {10, 20, 30}; } } ■実行結果 mbp:desktop potepan$ java Main 20
- メソッドの引数
- メソッドの戻り値
- 配列の宣言
- 値の代入
- 値の初期化
といった一連の操作も、他のデータ型同様に扱えます。
byte型を他のプリミティブ型に変換する
byte型を他の型に変換できますか?
可能です!ここでは、他のプリミティブ型(静的に型付けされるプログラミング言語)に変換する方法を見ていきましょう!
Javaでは、byte型を他の型に変換可能ですが、いくつか注意しておきたい点もあります。
その点も踏まえて、ここでは型の変換方法を確認しましょう。
byte型⇄int型の変換
まずは、byte型とint型の変換です。
型の変換を行うには、次のように記述します。
以下は、byte型をint形に変換しています。
■記述例 public class Main{ public static void main(String[] args){ byte b = 10; int i = (int) b; System.out.println(i); } }
上記のように、変換するbyte型の変数「b」の前に「(int)」を記述して、キャストします。
実行結果は次の通りです。
■実行結果 mbp:desktop potepan$ java Main 10
見た目にはわかりませんが、型変換が行われ、正常に動作しています。
逆に、int型からbyte型に変換するには、記述を逆にすればOKです。
■記述例 public class Main{ public static void main(String[] args){ int i = 10; byte b = (byte) i; System.out.println(b); } }
ただし、byte型で扱える範囲は-128〜127ですので、ビット数分のデータだけをデータとして取り出す形になります。
■記述例 public class Main{ public static void main(String[] args){ int i = 200; byte b = (byte) i; System.out.println(b); } } ■実行結果 mbp:desktop potepan$ java Main -56
変換としては次のようになっています。
- (10進数)200 → (符号付き2進数)11001000 → (10進数)-56
これは、short型やlong型でも同様の処理になります。
大きいデータ型から小さいデータ型に変換する場合は、注意が必要です。
byte型⇄String型の変換
次に、byte型とString型の変換です。
byte型からString型へ変換する際は、「String.valueOf()」または「Byte.toString()」が簡単に使えて便利です。
実際に記述してみると、次のように書けます。
■記述例(String.valueOf()) public class Main{ public static void main(String[] args){ byte b = 10; String s = String.valueOf(b); System.out.println(s); } } ■記述例(Byte.toString()) public class Main{ public static void main(String[] args){ byte b = 10; String s = Byte.toString(b); System.out.println(s); } } ■実行結果 mbp:desktop potepan$ java Main 10
実行結果はどちらも同じです。
では、String型からbyte型に変換する方法も確認しましょう。
変換には、「getBytesメソッド」が使えます。
記述方法は、次の通りです。
■記述例 public class Main{ public static void main(String[] args){ String s = "potepan"; byte[] bAry = s.getBytes(); for(int i = 0; i < bAry.length; i++) { System.out.println(bAry[i]); } } } ■実行結果 mbp:desktop suzuka$ java Main 112 111 116 101 112 97 110
String型の変数「s」を、getBytesメソッドでbyte型配列「bAry」に代入しています。
そして、for文で1文字ずつ取り出し、byte型として出力されていますね。
このように、String型からbyte型に変換するには、getBytesメソッドが使えます。
byte型からString型へ変換する際は、「String.valueOf()」または「Byte.toString()」を使う!
String型からbyte型に変換するには、「getBytesメソッド」を使う!
byte型⇄char型の変換
byte型とchar型を変換する方法も見ていきましょう!
まず、byte型からchar型への変換は、int型と同じくキャストすればOKです。
■記述例 public class Main{ public static void main(String[] args){ byte b = 10; char c = (char) b; System.out.println((int)c); } } ■実行例 mbp:desktoppotepan$ java Main 10
一方、char型からbyte型への変換は、一度String型に変換し、getBytesメソッドを使います。
記述方法は、次の通りです。
■記述例 public class Main{ public static void main(String[] args){ char c = 'p'; String s = String.valueOf(c); byte bAry[] = s.getBytes(); for(int i = 0; i < bAry.length; i++){ System.out.println(bAry[i]); } } } ■実行結果 mbp:desktop potepan$ java Main 112
このように、byte型で結果を取得できました。
「byte型⇄String型の変換」で紹介した、String.valueOf()を使って、char型をString型に変換しています。
その後、getBytes()でbyte型に変換する流れですね。
char型をbyte型に変換する場合は、ぜひこの方法を試してみてください。
byte型からchar型への変換は、「(char)」を使う!
char型からbyte型への変換は、String.valueOf()を使って、char型をString型に変換!
その後に、getBytes()でbyte型に変換する!
byte型をArray(byte配列)で使う
ここまででも何回か出てきたように、byte型は配列で使うことも可能です。
byte型の配列は「byte配列」と言い、小さな配列となります。
配列の定義方法は、次の通りです。
byte[] 配列名 = new byte[要素数];
■記述例 public class Main{ public static void main(String[] args){ byte[] bAry = new byte[3]; bAry[0] = 10; bAry[1] = 20; bAry[2] = 30; System.out.println(bAry[1]); } }
冒頭でも紹介した記述例です。
要素として3つ作成し、それぞれに「10、20、30」と値を代入しています。
byte配列を使うと,さまざまな型の情報をメモリに連続して書き込み可能です。
byte配列だと、書き込みや読み込みを行うメモリ位置を、自由に設定もできます。
このように、byte配列にもメリットがあるのです!
byte配列を初期化する
byte配列を初期化する方法は、上記で記述したように値を記述すればOKです。
値を代入しない場合は、デフォルト値である「0」が入っています。
■記述例 public class Main{ public static void main(String[] args){ byte[] bAry = new byte[3]; bAry[0] = 10; bAry[1] = 20; System.out.println(bAry[2]); } } ■実行結果 mbp:desktop potepan$ java Main 0
まとめ
Javaのbyte型について解説しました!
byte型は、-128〜127の範囲を扱えるデータ型です。
使い方は、他のデータ型同様に宣言して使えます。
さまざまな型への変換も可能ですので、ぜひこの記事を参考にしてみてください!
また、当サイトでは他のデータ型についても詳しく解説しています。
合わせてチェックしたい場合は、以下の記事を参考にしてみてくださいね!
【関連記事】
byte型とint型を変換するには「(int)」「(byte)」を使う!