Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Передача значения переменной в двоичном виде


Автор: Rooltak 21.10.2009, 10:30
Вопрос в следующем как в Java пердать значение переменной в двоичном виде, например можно передать значение в шеснадцатиричном виде таким образом

Код

а=0x7B
в этом случае получится что  
a=123


как такимже образом приравнять к переменной "а" значение в двоичной системе счисления например 1110 (14 в десятичной)

пробовал 
Код

a=b1110
a=0h1110



пробовал гуглить но немогу сформулировать текст запроса :(

Автор: jeank 21.10.2009, 10:50
Код

String s = "01010101";
byte x = Byte.parseByte(s, 2);


Бинарного типа в ява нет.

ну или так

Код

java.lang.Integer.parseInt( s, 2 )

Автор: Rooltak 21.10.2009, 11:06
Цитата(jeank @ 21.10.2009,  10:50)
Код

String s = "01010101";
byte x = Byte.parseByte(s, 2);


Бинарного типа в ява нет.

ну или так

Код

java.lang.Integer.parseInt( s, 2 )

нет не катит так.

Бинарный тип и не требуется все преобразуется в int.

Объясню на примере HEXа
Например я пишу 

Код

int a
a=0x7B


компилятор/интерпритатор/или что там еще есть в других языках
так вот он берет число 0x7B и рассматривает его )

префикс "0x" указывает ему на то что это шеснадцатиричное число 
понимая что это hex, а присвоить это все надо переменной int он делает следующее, переводит "7B" в десятичную систему счисления (получает число 123), а затем присваивает полученое значение переменной "а"

Таким образом получается что 

Код

a=123 //сто двадцать три в десятичной системе сисления


Случай с hex'ом работает в яве без проблем.
префикс 0х ява понимает
а я хочу узнать префакс для чисел в двоичной системе счисления

Данная вещь должна работать во всех языках, это наверное стандарт какойто.
Сразу извиняюсь за вставки в блоках "код", т.к. явы не знаю.

Автор: LSD 21.10.2009, 11:39
Цитата(Rooltak @  21.10.2009,  11:06 Найти цитируемый пост)
а я хочу узнать префакс для чисел в двоичной системе счисления

Нет такого. Числовые литералы в Java можно задавать только в 8-ричной, 10-тичной и 16-ричной системах счисления. Формат литералов для двоичной системы обещают добавить в 7ой версии.



Цитата(Rooltak @  21.10.2009,  11:06 Найти цитируемый пост)
Данная вещь должна работать во всех языках, это наверное стандарт какойто.

Интерестно откуда такая уверенность smile

Автор: Rooltak 21.10.2009, 13:42
Цитата(LSD @  21.10.2009,  11:39 Найти цитируемый пост)
Нет такого. Числовые литералы в Java можно задавать только в 8-ричной, 10-тичной и 16-ричной системах счисления. Формат литералов для двоичной системы обещают добавить в 7ой версии.

Ну  так для восьмеричной какой префикс? а то сказать что есть сказал а какой не говоришь


Цитата(LSD @  21.10.2009,  11:39 Найти цитируемый пост)
Интерестно откуда такая уверенность


потому что,
точно не скажу но помоему это все есть в C/C++ Pascal/Delphi 
и уверенность оттуда, что это правильно!
Почему я например не могу задать значение интовой переменной в двоичной или восьмеричной системе?

Жалательно бы еще ссылочку откуда ты почурпнул данную инфу. Заранее спс.

Автор: rimidal 21.10.2009, 14:57
Цитата

Жалательно бы еще ссылочку откуда ты почурпнул данную инфу. Заранее спс.


Видимо отсюда:

http://forum.vingrad.ru/forum/topic-9229.html

Автор: Rooltak 21.10.2009, 15:27
Книги это хорошо но помоему безумно перелистывать кучу книг ради поиска маленькой строки.
Мне ответили в другом месте на этот вопрос и привели ссылку на источник

кому интересно вот http://otvety.google.ru/otvety/thread?fid=0cb5ee7d528237810004767100db20a4&tid=0cb5ee7d52823781

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html

Автор: rimidal 21.10.2009, 15:39
Цитата

Книги это хорошо но помоему безумно перелистывать кучу книг ради поиска маленькой строки.
Мне ответили в другом месте на этот вопрос и привели ссылку на источник


О да, ты прав.

Действительно зачем книги читать? Ведь можно в интернете спросить. "Интернет" он ведь большой и умный, он ведь все знает.

Автор: LSD 21.10.2009, 17:11
Цитата(Rooltak @  21.10.2009,  13:42 Найти цитируемый пост)
Ну  так для восьмеричной какой префикс? а то сказать что есть сказал а какой не говоришь

Так ты спрашивал про двоичный. Откуда мне знать, знаешь ты как записываются восьмиричные литералы или нет.



Цитата(Rooltak @  21.10.2009,  13:42 Найти цитируемый пост)
точно не скажу но помоему это все есть в C/C++ Pascal/Delphi

Во первых этими двумя языками мир не ограничивается, Во вторых C/C++ нет литералов для записи двоичных чисел.

Автор: Rooltak 22.10.2009, 08:37
rimidal, парень не туда попал, флуд в другой ветке.


LSD
Этими языками я ничего не ограничивал, а лишь привел пример,
да дейсвительно в С/с++  нету бинарных литералов ((

ЗЫ: Тоже тащусь от этого мульта
"Завтра будет луше" ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)