Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 13.10.2010, 11:15   #1
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Кислый пока неопределено
По умолчанию подскажите чуток

подскажите:

имеем обьявленный массив k:array [0..127] of byte;
в чем разница между k[$13] и k[13] ?
Кислый вне форума   Ответить с цитированием
Старый 13.10.2010, 13:44   #2
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

k[13] это 13-й элемент массива
k[$13] это 19-й элемент массива
Почему так? Десятичная система счисления и 1Шестнадцатеричная система счисления
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
Старый 13.10.2010, 19:52   #3
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Кислый пока неопределено
По умолчанию

тоесть между:

PHP код:
   for i:=0 to $13-do begin
   k
[$13 i] := k[$13 i] xor k[i];
   
end

и:

PHP код:
   for i:=0 to 18 do begin
   k
[19 i] := k[19 i] xor k[i];
   
end
нет никакой разниы ?! но ведь так написали не просто так, а с какой-то целью..

Добавлено через 19 минут
неужели лишь только ради прозрачности кода ?

Последний раз редактировалось Кислый, 13.10.2010 в 19:52. Причина: Добавлено сообщение
Кислый вне форума   Ответить с цитированием
Старый 13.10.2010, 21:17   #4
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Просто при работе с типом byte удобнее (для программиста) использовать шестнадцатеричную систему счисления, но использовать или нет уже по личному выбору.
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber

Последний раз редактировалось J-Fobos, 13.10.2010 в 21:27.
J-Fobos вне форума   Ответить с цитированием
Старый 14.10.2010, 00:09   #5
Местный
 
Аватар для mikser
 
Регистрация: 26.01.2009
Сообщений: 1,097
Сказал Спасибо: 178
Имеет 119 спасибок в 84 сообщенях
mikser пока неопределено
По умолчанию

мне не удобно юзать хекс коды видимо хреновый из меня прогер
mikser вне форума   Ответить с цитированием
Старый 14.10.2010, 00:45   #6
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

хех, а я вобще в кодировании нечего не понимаю почти) мучаю Breadfan'a чтоб научил меня немножко)
dyh9l вне форума   Ответить с цитированием
Старый 17.11.2010, 13:27   #7
Местный
 
Аватар для Breadfan
 
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Breadfan пока неопределено
По умолчанию

Оффтоп
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."

А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?

Последний раз редактировалось Breadfan, 17.11.2010 в 13:29.
Breadfan вне форума   Ответить с цитированием
Старый 17.11.2010, 15:54   #8
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Кислый пока неопределено
По умолчанию

это здорово! а по существу ?

Добавлено через 14 минут
так я догнал, что это отрицательное число так представлятся либо если оно превышает значение переменной

тогда вопрос к xkor, как человеку который собаку сьел на этом )), данные какого типа приходят от сервера ? Byte(char), Integer(int), Word(long) ?

Добавлено через 57 минут
и еще, первый байт приходит, как 186 (BA) или как -70 ?

Добавлено через 51 минуту
я, блин, невнимательный ((
забыл что Byte это unsined char

Последний раз редактировалось Кислый, 17.11.2010 в 15:54. Причина: Добавлено сообщение
Кислый вне форума   Ответить с цитированием
Старый 17.11.2010, 17:53   #9
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Кислый, боже что это?! Как оно должно работать?!
Короче исправь это:
Код:
void view_pkt(char buff[], int len, int from_server)
{
    //var
    int lines, i, i1;
    char s[256];

    if (from_server){strcpy(s, "Сервер");}
    else            {strcpy(s, "Клиент");}

    sprintf(s, "%s, Length:  %d (0x%.*X)\n", s, len, 2, len);

    ToLog(s);
    ToLog(" -- -- -- -- -- -- -- \n");
    //view_pkt
    lines = len / 16;
    int mod = len % 16;
    int il  = i1 + i *16;
    if (mod>0) { lines++ ;}
    for (i = 0; i < lines; i++)
    {
        sprintf(s, "\n0x%.*X| ", 4, 16*i);
        for (i1 = 0; i1 < 16; i1++)
            {
                if (il >= len)
                    {
                        sprintf(s, "%s ", s);
                    }
		else sprintf(s, "%s %.*X", s, 2, buff[i1+16*i]);
		sprintf(s, "%s ", s);
	    }
	ToLog(s);
    }
    ToLog("  \n");
}
на это:
Код:
char * StringToHex(char * s, int len)
{
  char *ahex = "0123456789ABCDEF";
  char *r = new char[len*3+3];

  for(int i=0; i<len; i++){
    r[i*3]=ahex[(((UINT8)s[i]) >> 4) & 0xf];
    r[i*3+1]=ahex[((UINT8)s[i]) & 0xf];
    r[i*3+2]=' ';
  }
  r[len*3]='\r';
  r[len*3+1]='\n';
  r[len*3+2]=0;
  return r;
}

void view_pkt(char buff[], int len, int from_server)
{
    //var
    int lines, i, i1;
    char s[256];

    if (from_server){strcpy(s, "Сервер");}
    else            {strcpy(s, "Клиент");}

    sprintf(s, "%s, Length:  %d (0x%.*X)\n", s, len, 2, len);

    ToLog(s);
    ToLog(" -- -- -- -- -- -- -- \n");
    //view_pkt
    lines = len / 16;
    int mod = len % 16;
    int il  = i1 + i *16;
    if (mod>0) { lines++ ;}
    for (i = 0; i < lines; i++)
    {
        if((mod>0)&&(i+1==lines))
          sprintf(s, "\n0x%.*X| %s", 4, 16*i, StringToHex(&buff[16*i],mod));
        else
          sprintf(s, "\n0x%.*X| %s", 4, 16*i, StringToHex(&buff[16*i],16));
	ToLog(s);
    }
    ToLog("  \n");
}
ну или как ты сам написал
sprintf(s, "%s %.*X", s, 2, buff[i1+16*i]);
на
sprintf(s, "%s %.*X", s, 2, (unsined char)buff[i1+16*i]);
__________________
Я здесь практически не появляюсь!, Skype - ikskor

Последний раз редактировалось xkor, 17.11.2010 в 17:55.
xkor вне форума   Ответить с цитированием
Старый 27.10.2010, 10:15   #10
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Кислый пока неопределено
По умолчанию

вопрос из той же оперы:

например есть функции IntToHex, IntToStr тут все понятно. но блин.. какой цели может служить самописный HexToStr ? Перевод строки в строку ? из Hex в Str ?
Кислый вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 11:32.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!