Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2010, 22:12   #1
MoroZzz45
Пользователь
 
Регистрация: 05.06.2010
Сообщений: 14
По умолчанию Перевод из int в CString

У нас есть массив [60][60], состоит из нулей и единиц. Его разбиваем на блоки по 8, каждый блок - в десятичное число, число - в символ(как аскикод), символы по порядку нужно занести в систринг...
Вот как я пробовал делать:
Код:
int i,ii=0,temp=0,k=0,o=0,iter=0;
    CString x; char* t; t=new char [3600]; 
    for(i=0;i<3600;i++)
    {
        temp=temp+resh[k][ii]*pow(2,o);
        o++;ii++; 
        if(o==8) 
        {
            o=0;
            t[iter]=temp;
            iter++;
        }
        if(i==59) {k++;ii=0;o=0;}
        
    }
    x=t;
    return x;
Только длина CString'a получается очень маленькой... Где ошибка? Или есть способ попроще?
MoroZzz45 вне форума Ответить с цитированием
Старый 08.06.2010, 21:13   #2
n@sok
Пользователь
 
Регистрация: 24.11.2007
Сообщений: 46
По умолчанию

Цитата:
У нас есть массив [60][60], состоит из нулей и единиц. Его разбиваем на блоки по 8
Не совсем понятно как массив из 60 элементов разбить на блоки по 8. Ведь 60 не делится на 8 нацело, поэтому разбить не удасться.
n@sok вне форума Ответить с цитированием
Старый 08.06.2010, 21:58   #3
MoroZzz45
Пользователь
 
Регистрация: 05.06.2010
Сообщений: 14
По умолчанию

кхм, массив совсем не из 60и ячеек, а из 60х60. Это 3600 ячеек. 3600\8=450
MoroZzz45 вне форума Ответить с цитированием
Старый 08.06.2010, 22:16   #4
n@sok
Пользователь
 
Регистрация: 24.11.2007
Сообщений: 46
По умолчанию

Как я понял, строка в итоге должна состоять из 450 символов. Примерно так
Код:
CString x;
char t[451]; // +1 символ для '\0'
memset(t, 0, sizeof(t));
for (int i = 0; i < 3600; i++) t[i >> 3] |= resh[i / 60][i % 60] << i & 7;
return x = t;
n@sok вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из String в Int AlexSol.BY Помощь студентам 0 19.05.2010 20:24
перевод varchar в int в dataset kate158 БД в Delphi 4 13.05.2009 17:49
CString Артэс Общие вопросы C/C++ 5 25.01.2009 20:36
Указатели на CString bondik Общие вопросы C/C++ 5 07.01.2009 23:12
перевод из int в массив char. Freeman Общие вопросы C/C++ 5 30.05.2008 17:49