ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #691  
Старый 05.10.2008, 17:35
Sharingan
Участник форума
Регистрация: 05.05.2007
Сообщений: 171
Провел на форуме:
1050662

Репутация: 435
Отправить сообщение для Sharingan с помощью ICQ
По умолчанию

Товарищи, нужна помощь, нужен код на С++ переводящий Сиситемы Счисления.
Тоесть как бы из Любой в любую (до 20-ричной) не на прямую, а через десятичную... буду благодарен
 
Ответить с цитированием

  #692  
Старый 05.10.2008, 19:07
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

Цитата:
Товарищи, нужна помощь, нужен код на С++ переводящий Сиситемы Счисления.
Тоесть как бы из Любой в любую (до 20-ричной) не на прямую, а через десятичную... буду благодарен

ну вобщем так работает хотя для красоты надо было бы не юзать ltoa а написать свою:
Код:
#include <stdio.h>
#include <windows.h>

int cc1,cc2;
char buf[256];

int N2CC(char* N, int cc)
{
	char x,d;
	int len, res = 0;
	
	d = 1;
	
	len = strlen(N) - 1;
	while(1)
	{
		res = res + d * (N[len] - '0');
		if(len==0)break;
		d*=cc; len--;	
	}
	return res;
}

int main(int argc, char** argv)
{
	if(argc<4)
	{
		printf("Usage: labx N cc1 cc2");
		return 0;
	}

	cc1 = atol(argv[2]);
	cc2 = atol(argv[3]);
	
	ltoa(N2CC(argv[1],cc1),buf,cc2);
	printf("%s\n",buf);
	return 0;
}

Последний раз редактировалось bons; 05.10.2008 в 19:28..
 
Ответить с цитированием

  #693  
Старый 05.10.2008, 19:25
Sharingan
Участник форума
Регистрация: 05.05.2007
Сообщений: 171
Провел на форуме:
1050662

Репутация: 435
Отправить сообщение для Sharingan с помощью ICQ
По умолчанию

еще тут небольшая поправка надо что бы работало как с целыми так и с дробными числами
 
Ответить с цитированием

  #694  
Старый 05.10.2008, 19:47
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

в инете пример видел правда на делфи, думаю перевести на С труда не составит:
http://www.programmersforum.ru/archive/index.php/t-11035.html
 
Ответить с цитированием

  #695  
Старый 05.10.2008, 23:58
Sharingan
Участник форума
Регистрация: 05.05.2007
Сообщений: 171
Провел на форуме:
1050662

Репутация: 435
Отправить сообщение для Sharingan с помощью ICQ
По умолчанию

к сожалению Делфи не знаю, вопрос по прежнему актуален
 
Ответить с цитированием

  #696  
Старый 06.10.2008, 14:13
sv32
Новичок
Регистрация: 06.10.2008
Сообщений: 1
Провел на форуме:
5812

Репутация: 0
По умолчанию

Помогите в Дельфи реализовать плиз.....
програмку авторизации (логин, пароль) с ограничением количества попыток ввода, Если авторизация прошла успешно и пользователь является админом то он может добавить или удалить usera в текстовом файле =)) вот такая вот
 
Ответить с цитированием

  #697  
Старый 06.10.2008, 22:28
Larionich
Новичок
Регистрация: 21.09.2008
Сообщений: 16
Провел на форуме:
249855

Репутация: 52
По умолчанию

Цитата:
Товарищи, нужна помощь, нужен код на С++ переводящий Сиситемы Счисления.
Тоесть как бы из Любой в любую (до 20-ричной) не на прямую, а через десятичную... буду благодарен
Сам бы ты точно не написал... А я осилил ^^
Фича моего кода такая, допустим надо перевести из 2-ной в 16-ную, сначала переводим в из 2-ной в десятичную, потом из десятичной в 16-ную (собственно, как ты и просил). 3 функции, только последняя возвращяет массив символов, первые две возвращают вещественное число. Комментарии я написал, пример использования функций тоже. ^^
Код:
/*переводит дробное число из одной СС в другую
(основание которой меньше 36)*/
#include <iostream>
#include <math.h>
char rezA[255];//буффер под вывод шестнадцатеричной СС
/*переводит из любой СС в десятичную (основание СС, указатель на строку,
с начальным числом*/
double perevod10(int num, char* base)
{
    int n1=0,n2=0,i=0,rez1=0;
    double rez2=0;
    while ( base[++n1] != '.') { }
    for (i=0; i<=n1-1; ++i)
    {
        if ((int)base[i] <= (int)'9')
        {
            rez1+=((int)base[i] - (int)'0') * (int)pow(num,n1-1-i);
        }
        else
        {
            rez1+=((int)base[i] - (int)'A' + 10) * (int)pow(num,n1-1-i);
        }
    }
    while ( base[n1+1+(++n2)] != NULL) { }
    for (i=n1+1; i<=n1+n2; ++i)
    {
        if ((int)base[i] <= (int)'9')
        {
            rez2+=((int)base[i] - (int)'0') * pow(num, -1-(i-n1-1));
        }
        else
        {
            rez2+=((int)base[i] - (int)'A' + 10) * pow(num, -1-(i-n1-1));
        }
    }
    return rez1+rez2;
}
/*переводит из десятичной в СС, основание которой мешьше 10*/
double perevod2 (int num, double base)
{
    const double e=0.01;
    long base_temp1=(long)base,rez1=0,p=1;
    double base_temp2=base - (long)base,rez2=0;
    while (base_temp1!= 0)
    {
        rez1=rez1+ (base_temp1%num)*p;
        base_temp1=base_temp1/num;
        p=p*10;
    }
    while ((base_temp2) > e)
    {
        base_temp2*=num;
        rez2=(rez2 + (long)base_temp2)*0.1;
        base_temp2=base_temp2- (long)base_temp2;
    }
    return rez1+rez2;
}
/*переводит из десятичной в СС, основание которой больше 10*/
char* perevodA (int num, double base)
{
    const double e=0.01;
    char temp;
    long base_temp1=(long)base,rez1=0,k=0,i=0;
    double base_temp2=base - (long)base,rez2=0;
    while (base_temp1!= 0)
    {
        if (base_temp1%num <= 9)
        {
            rezA[i]=(char)(base_temp1%num + (int)('0'));
        }
        else
        {
            rezA[i]=(char)(base_temp1%num + (int)'A' -10);
        }

        base_temp1=base_temp1/num;
        ++i;
    }
    for (k=0; k<i/2; ++k)
    {
        temp=rezA[k];
        rezA[k]=rezA[i-1-k];
        rezA[i-1-k]=temp;
    }
    rezA[i]='.'; ++i;
    while ((base_temp2) > e)
    {
        base_temp2*=num;
        if (base_temp2 <= 9)
        {
            rezA[i]=(char)(base_temp2 + (int)('0'));
        }
        else
        {
            rezA[i]=(char)(base_temp2 + (int)'A' -10);
        }
        base_temp2=base_temp2- (long)base_temp2;
        ++i;
    }
    rezA[i]=NULL;
    return rezA;
}

int main()
{
	std::cout << perevod10(2, "1100.011") << "\n"; //из двоичной в десятичную
    std::cout << perevod10(16, "FF.8") << "\n";//из шестнадцатеричной в десятичную
    std::cout << perevod2(2, 1.625) << "\n";//из десятичной в двоичную
    std::cout << perevodA(16, 255.5) << "\n";//из десятичной в шестнадцатеричную
	return 0;
}
 
Ответить с цитированием

  #698  
Старый 06.10.2008, 22:53
UnPazz
Участник форума
Регистрация: 30.08.2008
Сообщений: 128
Провел на форуме:
668329

Репутация: 106
По умолчанию

Цитата:
Сам бы ты точно не написал... А я осилил ^^
любой осилит если захочет.
 
Ответить с цитированием

  #699  
Старый 07.10.2008, 11:40
AKAdem1c
Новичок
Регистрация: 24.02.2007
Сообщений: 16
Провел на форуме:
91241

Репутация: 31
Отправить сообщение для AKAdem1c с помощью ICQ
По умолчанию

ребят помогите! в матрицах не силен(
9. Описать тип-объект Matrix (матрица произвольной размерности M*n) и его методы: ввод матрицы; вывод матрицы; дублирование столбцов матрицы, где каждый элемент содержит только неповторяющиеся цифры. Описать тип и методы его потомка Matr (методы: дублирование строк матрицы, где количество нулей среди цифр всех чисел строки равно номеру строки; дублирование столбцов матрицы, где все элементы повторяются одинаковое количество раз (замена метода)).
 
Ответить с цитированием

  #700  
Старый 24.10.2008, 21:58
Vanterlog
Постоянный
Регистрация: 28.03.2007
Сообщений: 310
Провел на форуме:
2666600

Репутация: 238
По умолчанию

Срочно нужна помощь
Нада на Visual C++ Программа перевода заданного числа из десятичной системы в двоичную.
Помоите срочно
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ