Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / byte проблема... help!!!! / 17 сообщений из 17, страница 1 из 1
18.05.2005, 09:38
    #33071125
Кутузов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
Добрый день!
У меня возникла следующая проблема.
есть байтовый массив куда должен записаться IP адрес, есть строка содержащая этот адрес
выделить 4 цифры не проблема, а вот как как каждую из них преобразовать в байт не заню
Byte.GetByte(MyIP) не работает так-как в Java нельзя обэявить тип беззнаковым...

Помогите новичку!!!!!
...
Рейтинг: 0 / 0
18.05.2005, 09:43
    #33071147
adf
adf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
/topic/180936&pg=1#1521371
Только решения проблемы мне так и не сказали...
...
Рейтинг: 0 / 0
18.05.2005, 09:45
    #33071153
всхлип
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
/topic/180936&pg=1#1521371

что значит не сказали решение? по-моему я и привел работающий код.
...
Рейтинг: 0 / 0
18.05.2005, 09:51
    #33071168
adf
adf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
Да, спасибо, код работает!
Только мне надо чтобы массив не интов был, а байтов. Нормальных. То есть вида 167.0.0.177
А из этого способа получаются что хранятся отрицательные там. Т.о.
Мне чтоли хранить массив вида -80.0.0.-49, а потом его при проверке делать к инту и &255 ?

Понимаете, я никак не могу понять, почему getInetAdress позволяет в массив байтов загонять числа до 255, а когда мы вручную делаем (ну присваиваем)- нельзя
???
...
Рейтинг: 0 / 0
18.05.2005, 09:53
    #33071178
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
adf
Понимаете, я никак не могу понять, почему getInetAdress позволяет в массив байтов загонять числа до 255, а когда мы вручную делаем (ну присваиваем)- нельзя
???

Это потому, что он не заганяет туда числа до 255, а делает каст в байты.
...
Рейтинг: 0 / 0
18.05.2005, 09:56
    #33071187
adf
adf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
А?
Можно поподробнее. В двух словах?
...
Рейтинг: 0 / 0
18.05.2005, 09:57
    #33071189
XM
XM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
adf
Только мне надо чтобы массив не интов был, а байтов. Нормальных. То есть вида 167.0.0.177
А из этого способа получаются что хранятся отрицательные там. Т.о.
Мне чтоли хранить массив вида -80.0.0.-49, а потом его при проверке делать к инту и &255 ?

Не путайте хранение с представлением.
Байт он и есть байт. Другое дело выводить его как знаковое или беззнаковое число.
Чем вам не нравится хранить byte[]{-80,0,0,-49} и сравнивать его с таким же?
...
Рейтинг: 0 / 0
18.05.2005, 09:58
    #33071191
XM
XM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
adfА?
Можно поподробнее. В двух словах?
Код: plaintext
1.
 byte  a= new  Integer("254").byteValue():
...
Рейтинг: 0 / 0
18.05.2005, 10:01
    #33071204
adf
adf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
Значит, можно представлять как знаковое и как беззнаковое.. Интересно...
Можно хранить адрес и как массив с отрицательными, просто сравнивать надо получается массив с "беззнаковыми" элементами со "знаковыми"
...
Рейтинг: 0 / 0
18.05.2005, 10:06
    #33071218
XM
XM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
adfпросто сравнивать надо получается массив с "беззнаковыми" элементами со "знаковыми"
Нет, просто надо сравнивать два массива байтов , а то, что System.out.println покажет отрицательные числа не имеет никакого значения :)
BTW: InetAddress.getByAddress(new byte[]{(byte)192, (byte)168, 10, 46}).toString(), если уж очень надо :)
...
Рейтинг: 0 / 0
18.05.2005, 10:11
    #33071231
XM
XM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
есть в src.zip java/net/InetAddress.java - глянули бы :))
...
Рейтинг: 0 / 0
18.05.2005, 10:12
    #33071235
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
XM
Код: plaintext
1.
 byte  a= new  Integer("254").byteValue():

Только не так, плз.
Хотя бы так:
byte b = (byte)254;
или так:
byte b = (byte)Integer.parseInt("254");
Зачем лишний раз создавать объекты или делать вызовы методов?
...
Рейтинг: 0 / 0
18.05.2005, 10:12
    #33071236
adf
adf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
XM adfпросто сравнивать надо получается массив с "беззнаковыми" элементами со "знаковыми"
Нет, просто надо сравнивать два массива байтов , а то, что System.out.println покажет отрицательные числа не имеет никакого значения :)
BTW: InetAddress.getByAddress(new byte[]{(byte)192, (byte)168, 10, 46}).toString(), если уж очень надо :)
Извините, буду совсем настойчивой :
Чем отличается от простого сравнения элементов массива?

Еще раз извините за глупость... :)
...
Рейтинг: 0 / 0
18.05.2005, 10:21
    #33071267
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
adf XM adfпросто сравнивать надо получается массив с "беззнаковыми" элементами со "знаковыми"
Нет, просто надо сравнивать два массива байтов , а то, что System.out.println покажет отрицательные числа не имеет никакого значения :)
BTW: InetAddress.getByAddress(new byte[]{(byte)192, (byte)168, 10, 46}).toString(), если уж очень надо :)
Извините, буду совсем настойчивой :
Чем отличается от простого сравнения элементов массива?

Еще раз извините за глупость... :)

Что отличается? :)


byte b = (byte)240 = 0xf0;
int i = 240 = 0x00 00 00 f0;


b == i ?
по спецификации перед сравнением операнды должны быть приведены к одному типу, в данном случаю int.

(int)b = 0x ff ff ff f0 - т.к. самый старший бит в байте был 1.

0x ff ff ff f0 != 0x 00 00 00 f0. По этому используется маска

b & 0xff == i - что бы при автокасте избавиться от лишних "единичек".

(b & 0xff => 0x ff ff ff f0 & 0x 00 00 00 ff => 0x 00 00 00 f0)
...
Рейтинг: 0 / 0
18.05.2005, 10:22
    #33071269
XM
XM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
NotGonnaGetUsТолько не так, плз.
Хотя бы так:
byte b = (byte)254;
или так:
byte b = (byte)Integer.parseInt("254");
Зачем лишний раз создавать объекты или делать вызовы методов?

каюсь, протупил...
2 adf
ничем. мне просто выражение "массив с "беззнаковыми" элементами со "знаковыми" показалось недостаточно четким :)
...
Рейтинг: 0 / 0
18.05.2005, 10:23
    #33071277
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
NotGonnaGetUs
по спецификации перед сравнением операнды должны быть приведены к одному типу, в данном случаю int.

читать: приводятся автоматически к одному типу.
...
Рейтинг: 0 / 0
18.05.2005, 10:34
    #33071307
adf
adf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
byte проблема... help!!!!
2NotGonnaGetUs и ХМ
Спасибо.
Вы мне все достаточно хорошо расжевали, сложно пока вот так сразу въехать.

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


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