Текущий архив: 2006.06.25;
Скачать: CL | DM;
ВнизКак такое сделать то? Найти похожие ветки
← →
ПЛОВ © (2006-06-01 12:59) [0]Чет совсем голова не варит... Кстати, вопрос по С++ :)
Есть переменная типа int, так вот 4 ее байта нужно скопировать в массив char. Как такое сделать в Делфи я знаю, а вот в С++...
← →
Desdechado © (2006-06-01 13:02) [1]я уже подзабыл, но может так
c[0]=*(unsigned char &) i;
← →
ПЛОВ © (2006-06-01 13:07) [2]error C2100: illegal indirection
← →
han_malign © (2006-06-01 13:10) [3]char ch[4];
*(int*)ch = i;
← →
ПЛОВ © (2006-06-01 13:32) [4]
> han_malign
Вроде как ошибок нету, но потом у меня эти данные должны писаться в файл вместе с текстом - нету не того, не другого :)
← →
Игорь Шевченко © (2006-06-01 13:34) [5]
> Есть переменная типа int, так вот 4 ее байта нужно скопировать
> в массив char
union {
long l;
char c[4];
} a;
a.l = value;
← →
J_f_S (2006-06-01 13:34) [6]1. Брутально
CopyMemory(ch, &i, 4)
2. Общепринято
ch[0] = i >> 24
ch[2] = (i & 0x00ff0000) >> 16
ch[3] = (i & 0x0000ff00) >> 8
ch[4] = i & 0x000000ff
3. Элегантно
union _t_union
{
int i;
char ch[4]
}
_t_union t;
t.i = i;
ch[0] = t.ch[0]
ch[1] = t.ch[1]
ch[2] = t.ch[2]
ch[3] = t.ch[3]
ЗЫ: Насчет порядка чаров могу и попутать, не взыщите
← →
ПЛОВ © (2006-06-01 13:45) [7]Спа, разобрался... Ошибка как всегда оказалась в другом :)
← →
han_malign © (2006-06-01 14:01) [8]
> 1. Брутально
- memcpy, strcpyn, lstrcpynA
есть еще брутальный вариант
wsprintf(ch, "%.4s", &i);
>2. Общепринято
- это Network order (ntohl)
← →
вразлет © (2006-06-01 14:04) [9]Ну что, добьем ветку до 100 постов? :))
← →
Kolan © (2006-06-01 14:06) [10]
> ПЛОВ © (01.06.06 12:59)
Просто распологаешь масси и число в одном и томже месте памяти...var
CharArray: array[0..3] of Char;
I: Integer absolute CharArray;
begin
I := 4;
// В Массив уже заполнен. :)
end;
← →
ПЛОВ © (2006-06-01 14:27) [11]Спасибо еще раз... Аж глаза разбегаються от количества вариантов :))
← →
Kolan © (2006-06-01 14:31) [12]Упс не это не для C++ это для Delphi. Я перепутал... :)
← →
Prohodil_Mimo (2006-06-01 15:18) [13]ну дабы раздуть ветку до ста постов, можно и для каждого языка примеров накидать :о)
← →
Игорь Шевченко © (2006-06-01 15:53) [14]
> можно и для каждого языка примеров накидать
Для prolog"а и APL слабо ? ;)
← →
tesseract © (2006-06-01 16:04) [15]
> Для prolog"а и APL слабо ? ;)
А Cobol и fortran почему забыт ?
← →
J_f_S (2006-06-01 17:14) [16]invoke memcpy, ch, numver, 4
← →
J_f_S (2006-06-01 17:18) [17]> memcpy, strcpyn, lstrcpynA
Ну да, CopyMemory это и есть memcpy, только завернутый в макрос, чтоб никто не догадался.
Страницы: 1 вся ветка
Текущий архив: 2006.06.25;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.009 c