powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Двоичное преобразование из 16ричного
13 сообщений из 13, страница 1 из 1
Двоичное преобразование из 16ричного
    #34522805
1234512345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
 int  b = Integer.parseInt(ch[ 2 ]); 
    System.out.println("ch[2]bin = "+Integer.toString(b, 2 ));
Преобразовываю 16ричное число (с) выводит 1100
Каким образом вывести в двоичном виде чтобы было так
00001100 чтобы видно было состояние всех 8 битов даже если они нулевые
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34522901
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно написать самому, что то вроде такого:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 int  a =  128 ;
String binaryString = toString(a);


// перевод числа в двоичную форму
 public   static  String toString( int  number) {
     String s = "";  
      for ( int  i =  0 ; i< 32 ; i++) {
           s = (number >> i &  1 ) + s; 
     }
      return  s;
}
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34522914
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ps: ну а для других числовых типов, достаточно изменить предел цикла на нужное количество разрядов (8, 16, 32, 64)...
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34522929
1234512345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirageps: ну а для других числовых типов, достаточно изменить предел цикла на нужное количество разрядов (8, 16, 32, 64)...
А как после взять значение последнего байта ?
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34522941
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1234512345 unicornmirageps: ну а для других числовых типов, достаточно изменить предел цикла на нужное количество разрядов (8, 16, 32, 64)...
А как после взять значение последнего байта ?

в смысле? старшего или младшего?
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34522977
1234512345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirage 1234512345 unicornmirageps: ну а для других числовых типов, достаточно изменить предел цикла на нужное количество разрядов (8, 16, 32, 64)...
А как после взять значение последнего байта ?

в смысле? старшего или младшего?

00001100
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34522985
1234512345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не успел дописать, младшего.
Хотя по идее придется побайтно просматривать с младшего и выводить соответствующее значение при определенной комбинации
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34523006
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значение последних бит можно взять например:

сдвигами:

Код: plaintext
1.
2.
3.
 int  n =  2 ;    // количество  младших бит которые нужно извлечь
 int  a = ....; // исходное число
a = (a << ( 32 -n)) >>> ( 32  - n);  // результат

либо маской:
Код: plaintext
1.
2.
3.
4.
5.
 int  MASK = ...;  // маска в двоичном представлении 00000000 00000011

 int  a = ....; // исходное число

a = (a & MASK) & MASK; // результат
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34523028
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в последнем варианте описка, вот так:

Код: plaintext
1.
a = a & MASK; // результат
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34523083
1234512345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
большое спасибо, надо будет про сдвиги подробнее просмотреть
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34523099
1234512345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirageзначение последних бит можно взять например:

сдвигами:

Код: plaintext
1.
2.
3.
 int  n =  2 ;    // количество  младших бит которые нужно извлечь
 int  a = ....; // исходное число
a = (a << ( 32 -n)) >>> ( 32  - n);  // результат

либо маской:
Код: plaintext
1.
2.
3.
4.
5.
 int  MASK = ...;  // маска в двоичном представлении 00000000 00000011

 int  a = ....; // исходное число

a = (a & MASK) & MASK; // результат

А если исходное число 16ричное?
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34523117
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА если исходное число 16ричное?

если оно записано в виде:
Код: plaintext
1.
 int  a =0xFFFF;
то будет итак работать.
...
Рейтинг: 0 / 0
Двоичное преобразование из 16ричного
    #34523138
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если число записано в текстовом виде, то вначале можно преобразовать:
Код: plaintext
1.
 int  a = Integer.decode("0xFFFF");

а затем уже использовать с учетом вышесказанного.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Двоичное преобразование из 16ричного
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]