Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 07.03.2015
Сообщений: 3
1

Из 4-х Byte в int

18.06.2015, 21:42. Показов 1041. Ответов 3
Метки нет (Все метки)

Здравствуйте!!! Програмлю для себя программу, которая читает любой файл и выводит его в виде таблицы из окошек, в которых находятся все байты этого файла... именно байты, а не символы, как это делает блокнот. Курсором, наводя на одно окошко, выделяется это окошко, два байта далее и один байт назад. на отдельном JPanel-е, Маленьком таком, по идеи должно выводиться число INT из этих 4-х байтов, но, так как байты идут от -128 до 127, где, как я выяснил, оказывается 0 = 0, 127 = 127, -128 = 128, -125 = 131, а -1 = 255! Из-за этого случилась сложность в составлении формулы, для нахождения INT, а описывать кучу блоков if - это не серьезно (Просто лень). Помогите, пожалуйста, составить формулу, где известны 4 байта... ну или библиотеку найти... в гугле нет D:

например, если b1 = 0, b2 = 0, b3 = 2, b4 = 28 то INT, по формуле, должен быть 540
если b1 = 0, b2 = 0, b3 = 2, b4 = -68 то INT, по формуле, должен быть 700
если b1 = -1, b2 = -1, b3 = -3, b4 = -28 то INT, по формуле, должен быть -540
если b1 = -1, b2 = -1, b3 = -3, b4 = 68 то INT, по формуле, должен быть -700

Ну и для LONG-a тоже, если можете
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2015, 21:42
Ответы с готовыми решениями:

Варианты конвертации bool/byte/int в byte/int
В Си, если мне не изменяет память можно наоборот любые данные интерпретировать как true/false. А...

Что делает Read(byte[] buffer, int offset, int count) метод класса Stream
Что делает Read(byte buffer, int offset, int count) метод класса Stream. Приведите пример...

Byte to int
Как перевести 2 байта в Integer? Пример: 255 255 - это будет 65535 204 144 - это 52368

Int -> 4 byte
В с++ можно провернуть такой вот фокус int i = 0b00010000000100000001000000010001; char...

3
...
1802 / 1267 / 934
Регистрация: 12.02.2013
Сообщений: 2,058
19.06.2015, 05:59 2
ilyyya, "велосипедостроением" от незнания решили заняться? Почитайте для начала про битовые операции и тому подобное. Вот, для затравки:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Program {
    public static byte[] getBytes(int value) {
        int i = 4;
        byte[] res = new byte[i];
        while (i-- > 0) {
            res[i] = (byte)(value & 0xFF);
            value >>= 8;
        }
        return res;
    }
 
    public static int getInt(byte[] value) {
        int res = 0;
        for (int i = 0; i < 4; ++i) {
            res = (res << 8) | value[i] & 0xFF;
        }
        return res;
    }
 
    public static void printBytes(byte[] value) {
        for (byte it : value) {
            System.out.printf("%02X ", it);
        }
    }
 
    public static void main(String[] args) {
        byte[] a = getBytes(123456789);
        printBytes(a);
        System.out.println("= " + getInt(a));
    }
}
Результат выполнения
0
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 23
22.04.2017, 12:36 3
Спрошу по поводу кода anmartex.

Зачем нужна операция & 0xFF ? В 6 и 15 строчка

Объясните, пожалуйста, кто-нибудь?
0
korvin_
22.04.2017, 23:00     Из 4-х Byte в int
  #4

Не по теме:

Цитата Сообщение от IlyaSSSS Посмотреть сообщение
Объясните, пожалуйста, кто-нибудь?
Что, прогуливал дискретную математику? Обоснуй нафига ты такой нужен в професии? Папочкины деньги прожирать?

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2017, 23:00

int в byte
как перевести int в byte а потом обратно в int???

Int в byte
как поместить Integer переменную в массив байт? (желательно с примером)

String -> byte -> int
Доброго времени суток, возможно ли представить строку (пример) &quot;cyberforum&quot; в виде целочисленной...

Конвертирование из int[] в Byte
Собственно, есть int arr = new int ; НУжно конвертировать этот массив в Byte, и пожже этот Byte...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru