Перейти к содержанию

Java-Shildt-105ByteUShift

Материал из Викиучебника — открытых книг для открытого мира

Полный справочник по Java. Java SE 6 Edition. 7-е издание. Герберт Шилдт. "Вильямс", Москва - Санкт-Петербург - Киев, 2007, стр.105.

// 105
// Сдвиг без учета знака значения типа byte.
class ByteUShift  {
   static public void main(String args[])  {
      char hex[] = {
         '0', '1', '2', '3', '4', '5', '6', '7',
         '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
      };      
      byte b = (byte) 0xf1;      
      byte c = (byte) (b >> 4); 
      byte d = (byte) (b >>> 4);    
      byte e = (byte) ((b &0xff) >> 4);        
     
      System.out.println("              b = 0x"
           + hex[(b >> 4) & 0x0f] + hex[b & 0x0f]);
      System.out.println("         b >> 4 = 0x"
           + hex[(c >> 4) & 0x0f] + hex[c & 0x0f]);
      System.out.println("        b >>> 4 = 0x"
           + hex[(d >> 4) & 0x0f] + hex[d & 0x0f]);
      System.out.println("(b & 0xff) >> 4 = 0x"
           + hex[(e >> 4) & 0x0f] + hex[e & 0x0f]);
   }
}