22 lut 2010

Reszta z dzielenia


@Test
public void testModulo() {

//znak wyniki jest równy znakowi liczby przed %!!
assertEquals(-5 % -2, -1);
assertEquals(-5 % 2, -1);
assertEquals( 5 % -2, 1);
assertEquals( 5 % 2, 1);

assertEquals(-9 % -5, -4);
assertEquals(-9 % 5, -4);
assertEquals( 9 % -5, 4);
assertEquals( 9 % 5, 4);

//pass all
}

Przesunięcia bitowe


@Test
public void PrzesTest(){


assertEquals(23>>33, 23>>1); //pass
assertEquals(23<<33, 23<<1); //pass
assertEquals(23>>>33, 23>>>1); //pass
//ujemne
assertEquals(-23>>33, -23>>1); //pass

assertEquals(-4<<1, -8); //pass

assertEquals(1>>1, 0); //pass
}

Dzielenie przez zero


@Test
public void DivByZero(){

//int i=3/0;
//prn(i); //runtime-error

float f=1.0f/0;
prn(f); //print Infinity

double d=1.0/0;
prn(d); //print Infinity

//ciekawostka 1.0 jest doublem!!

int licznik=1;
int mianownik=0;

// int wynik=licznik/mianownik; //runtime-error

//MOD
int wynik=licznik%1;
prn(wynik); //wynik =0

//!int wynik=licznik%0; runtime error!
prn(wynik); //wynik =0

float ff= 5%0.3f;
prn(ff); //0.199999

float fff= 5%0.0f;
prn(fff); //NaN

float fy=1.0f/0.0f;
prn(fy); //Infinity
}