Wpis z mikrobloga

@wolfram11: public class Main {

public static void main(String[] args) {

byte up = 0b0100;
short dw = 010;
System.out.println("WPR"+ (dw << up));
}
}

Czy mógłby mi ktoś łopatologicznie wytłumaczyć to przesunięcie i dlaczego akurat taki wynik wychodzi, a nie inny?
#java #naukaprogramowania
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@wolfram11: 010 to liczba w systemie ósemkowym (w tym wypadku 8), up to 4 zapisane binarnie. A przesunięcie 8 << 4 to jakby 8 pomnożyć cztery razy *2 ( 8 * 2 * 2 * 2 * 2 lub 8 * 2^4) co daje 128.
  • Odpowiedz
Każdy się może przejęzyczyć czasami :P
10 jest równe 2 w systemie dwójkowym.
Pierwsza cyfra na końcu to zawsze jedności czyli razy 1.
Druga cyfra to zawsze jej wartość * podstawa w jakim systemie jesteś np. w dziesiętnym 10 = 10, w dwójkowym 10 = 2, w ósemkowym 10 = 8 itd.
  • Odpowiedz