Path path = Paths.get(lokasiFile);
byte data = Files.readAllBytes(path);
Dikarenakan type byte di java mempunyai rentang nilai -128 sampai +128 menjadi masalah bila dikonversi ke type biner 8 bit yang tidak menghendaki nilai integer minus! Karena nilai byte dari sebuah file di java seperti itu, berbeda dengan C# yang mempunyai nilai byte -256 sampai 256 dan bila kita menggunakan function Files.ReadAllBytes di C# menghasilkan nilai byte yang mempunyai nilai 0 sampai 256.
Inilah letak perbedaan yang mendasar,
Jikalau di C# mengembalikan nilai byte a = 240
Maka di java byte a = (byte) 240 menghasilkan nilai a = -16
Yaitu mengandung nilai minus
Sehingga kita perlu konversi kan ke nilai int
public class Contoh {
public static void main(String[] args) {
byte a = -10;
int b = a & 0xFF; //untuk mencegah nilai minus
byte c = (byte) b;
byte d = (byte) 240;
int endl = 0;
}
}
Bila kita debug menghasilkan
Perhatikan bahwa byte a = -10 (misalnya kita membaca sebuah stream byte file)
Ingin dikonversi ke nilai int dengan menambahkan & 0xFF menghasilkan nilai integer 246.
No comments:
Post a Comment