Mam tablicę,
byte[] is = {60,-4,29,22}; // w hex 3CFC1D16 = 1023155478
jestem kiepski z liczenia bajtow, moze mi ktoś pomoże?
Jak wyliczyć int-a z tej tablicy ?
Mam tablicę,
byte[] is = {60,-4,29,22}; // w hex 3CFC1D16 = 1023155478
jestem kiepski z liczenia bajtow, moze mi ktoś pomoże?
Jak wyliczyć int-a z tej tablicy ?
bb napisał(a)
(is[0] << 24) | (is[1] << 16) | (is[2] << 8) | is[3]
Ten algorytm jest błędny.
Np. dla takich dwóch tablic: {-128,-67,120,-128} i {-128,-67,121,-128} jest ten sam wynik (-128).
Użyj zwykłego dodawania: (b0<<24) + (b1 << 16) + (b2 << 8) + b3
OK, dzieki
(is[0]<<24) + ((is[1]) << 16) + (is[2] << 8) + is[3]; zwraca mi 1006378262
Docelowo musi być tak.
(is[0]<<24) + ((is[1]&0xff) << 16) + (is[2] << 8) + is[3]; 1023155478 i wtedy jest ok
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.