powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Тернарный оператор и побитное сравнение
6 сообщений из 6, страница 1 из 1
Тернарный оператор и побитное сравнение
    #37630954
Exordin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Подскажите пожалуйста:
Стоит задача: используя тернарный оператор и побитное сравнение вывести на консоль результирующие нули и единицы без использования Integer.toBinaryString();.
Ну думаю вторая часть оператора, после знака "?" мне ясна, а из чего брать Boolean, если, насколько я понимаю, побитные операторы сразу перебирают все биты и возвращают готовый результат. Или нужно потом прочитать биты, уже с результата?
...
Рейтинг: 0 / 0
Тернарный оператор и побитное сравнение
    #37631072
Miha_S7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Exordin,


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public class Test {

    public static void main(String[] args) {
        
        Integer v = new Integer(77);
        
        String s = "";
        
        System.out.println(Integer.toBinaryString(v));
        
        for(int i = Integer.SIZE-1; 
                i >= 0; 
                s+= ((v >>> i-- & 1) == 1 ? '1' : '0')
        );
        
        System.out.println(s);
        
        System.out.println(s.replaceAll("^0*+", ""));
    }

}


Код: plaintext
1.
2.
3.
4.
D:\>java Test
1001101
00000000000000000000000001001101
1001101
...
Рейтинг: 0 / 0
Тернарный оператор и побитное сравнение
    #37631107
Miha_S7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
лучше так
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class Test {
    public static void main(String[] args) {
        Integer v = new Integer(77);
        StringBuffer sb = new StringBuffer();
        System.out.println(Integer.toBinaryString(v));
        for(int i = Integer.SIZE-1; 
                i >= 0; 
                sb.append((v >>> i-- & 1) == 1 ? '1' : '0')
        );
        String s = new String(sb);
        System.out.println(s);
        System.out.println(s.replaceAll("^0*+", ""));
    }
}
...
Рейтинг: 0 / 0
Тернарный оператор и побитное сравнение
    #37631114
Exordin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Miha_S7,

Огромное спасибо! Разбираюсь.
...
Рейтинг: 0 / 0
Тернарный оператор и побитное сравнение
    #37631124
Exordin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Miha_S7,

Да, с StringBuffer'ом поприятнее смотрится )
...
Рейтинг: 0 / 0
Тернарный оператор и побитное сравнение
    #37631578
Exordin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Желаю изложить проделанную работу, для дополнительной информации, может кому-нибудь пригодится.
Сравнил два "инта" побитно используя битовый оператор сравнения "|", но можно поставить любой:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        int a = 77;
        int b = 920;
        String size;
        if(a > b){
            size = Integer.toBinaryString(new Integer(a));
        } else {
            size = Integer.toBinaryString(new Integer(b));
        }
        for(int i = size.length() - 1; i >= 0; i--){
            System.out.print(((a >> i & 1) | (b >> i & 1)) == 1 ? '1' : '0');
            }


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


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