目次
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)」を使う!