Как я могу записать 7-байтовое значение Integer в DataOutputStream, который содержит 15 цифр? - PullRequest
0 голосов
/ 03 ноября 2011

Мне нужно записать 7-байтовое целочисленное значение в DataOutputStream, это целое число содержит 15 цифр.Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

7 байтов = 56 бит
это означает, что вы можете представлять числа до 2 ^ 56, что больше, чем необходимо для длинных 15-значных чисел.

просто преобразуйте число в двоичное и сохраните его в тех 7 байтах, которые вы отправляете.

0 голосов
/ 03 ноября 2011

7 байт = 56 бит, вы можете использовать long для хранения 15-значного целого числа

и преобразовать его в байты:

long val = ...
byte [] b = new byte[7];  
for(int i=0;i<7;i++){  
    b[7 - i] = (byte)(val >>> (i * 8));  
}  

/ запись с руки, может испортить sth с индексами или сдвигами/

...