İpucu

Bir Değerin 0xFF ve & Operatörü İle Integer Değere Döndürülmesi

Bazı kod örneklerinde bir byte aşağıdaki gibi int değerine çevrilmektedir:
byte b=-3;
int i=b & 0xFF;

0xFF sayısının bit değeri 00000000 00000000 00000000 11111111 şeklindedir. & (and) operatörü ile bir değer ve 0xFF işlemden geçirildiğinde son sekiz bit hariç diğer bitler 0 olacaktır. Son sekiz bit ise aynen yeni değere aktarılacaktır.
Örneğin -3 değerinin byte karşılığı 11111111111111111111111111111101 şeklindedir. Bu değer ile 0xFF sayısı & işlemine tabi tutulursa sonuç 11111101 şeklinde olacaktır (-3 sayısının son sekiz biti aynen aktarılmıştır) ve bu sayının decimal değeri 253 olacaktır.
Yukarıdaki örnekte görüldüğü gibi -3 sayısı pozitif bir sayı haline gelmiştir. Java'da unsigden tür yoktur. Bir değişken tanımlandığında sign biti verinin içerisinde olmaktadır. Bu nedenle bir byte değeri 0-255 arası değerleri değil -128 ile 127 arasındaki değerleri içerebilir.
Sonuç olarak bir byte değeri -128 ile 127 aralığından 0-255 aralığına taşınır. Bunun sonucu olarak negatif değerde saklanan sign biti temizlenmiş olur. Genellikle şifreleme süreçlerinde bu işlem tercih edilmektedir.
zafer.teker , 11.05.2018

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir

Misafir Yorumları




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir