[losowa nazwa] napisał(a)
O co Ci chodzi ? byte to jeden bajt, int to 4 bajty, short 2, long 8... standard. A jaki wynik powinien byc wg Ciebie ?
chodzi o to ze takim sposobem
byte[] bytes = new byte[4];
bytes[0] = (15 & 0xFF0000) >> 24;
bytes[1] = (15 & 0x00FF00) >> 16;
bytes[2] = (15 & 0x0000FF) >> 8;
bytes[3] = 15 & 0xFF;
System.out.println(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3]);
zapisuje liczbe i odczytuje poprawnie ale tylko o małej wartosc a jesli zamiast 15 dam np 1000 to nie działa poprawnie..
nawet jesli zrobie tak
byte[] bytes = new byte[8];
bytes[0] = (590 & 0xFF0000) >> 56;
bytes[1] = (590 & 0x00FF00) >> 48;
bytes[2] = (590 & 0x0000FF) >> 40;
bytes[3] = (590 & 0x0000FF) >> 32;
bytes[4] = (590 & 0x0000FF) >> 24;
bytes[5] = (590 & 0x0000FF) >> 16;
bytes[6] = (590 & 0x0000FF) >> 8;
bytes[7] = 590 & 0xFF;
System.out.println(bytes[0] << 56 | bytes[1] << 48 | bytes[2] << 40
| bytes[3] << 32 | bytes[4] << 24 | bytes[5] << 16
| bytes[6] << 8 | bytes[7]);
czyli zapisuje na 8 bajtach tez nie działa, i skoro mowiłes ze inta zapisze na 4 bajtach a jego zakres to od -2,147,483,648 do 2,147,483,647, dlaczego wiec kod powyzej (ten na 4 bajtach) nie działa ? nie czaje co robie zle ;|