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

из восьмеричной в остальные. С++
  #1  
Старый 15.05.2009, 19:34
s_p_a_m
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме:
1608432

Репутация: 158
По умолчанию из восьмеричной в остальные. С++

помогите с исходниками для программы перевода из восьмеричной системы исчеслениия в 16-ти, 10-ти и в двоичную систему ( Visual 2008 )
 
Ответить с цитированием

  #2  
Старый 15.05.2009, 20:28
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

блин, тут на 5-10 минут дел, могбы и сам сделать. алгоримты простые. достаточно было просто подумать как это сделать
Код:
#include "stdafx.h"
typedef unsigned long ULONG;

ULONG OCT2DEC(ULONG i)
{
 ULONG d=0;
 ULONG x=1;
 while (i)
 {
   d+=(i%10)*x;
   x*=8;
   i=i/10;
 }
 return d;
}


void OCT2HEX(ULONG i,char * outhex)
{
 ULONG x,y;
 char mas[17]="0123456789ABCDEF";
 i=OCT2DEC(i);
 x=i;
 y=0;
 while (i) // ýòî ìû âû÷èñëèì äëèííó ïîëó÷àåìîé ñòðîêè
 {
  y++;
  i=i/16;
 }
 i=x;
 outhex[y]=0x00;
 while (i) // ýòî ìû âû÷èñëèì äëèííó ïîëó÷àåìîé ñòðîêè
 {
  outhex[--y]=mas[i%16];
  i=i/16;
 }
 return;
}

void OCT2BIN(ULONG i,char * outhex)
{
 ULONG x,y;
 i=OCT2DEC(i);
 x=i;
 y=0;
 while (i) // ýòî ìû âû÷èñëèì äëèííó ïîëó÷àåìîé ñòðîêè
 {
  y++;
  i=i/2;
 }
 i=x;
 outhex[y]=0x00;
 while (i) 
 {
  if (i%2) outhex[--y]='1'; else outhex[--y]='0';
  i=i/2;
 }
 return;
}


int main(int argc, char* argv[])
{
	ULONG ret;
	char buf[128];
    ret=OCT2DEC(42657);
 	printf("OCT 2 DEC = %i\n",ret);

	OCT2HEX(42657,buf);
	printf("OCT 2 HEX = %s\n",buf);

    OCT2BIN(42657,buf);
	printf("OCT 2 BIN = %s\n",buf);
	
	return 0;
}
 
Ответить с цитированием

  #3  
Старый 15.05.2009, 20:32
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

ps. там где иероглифы прорисовались - это был коммент. что в этом месте я предварительно вычисляю длину данные которая должна получиться при конвертировании. Для примере везде конвертится число 42657
сначало в 10-ю, затем в 16-ю а потом в 2-ю.
Конверт в 16 и 2 происходит через предварительный конверт в 10-ю
 
Ответить с цитированием

  #4  
Старый 15.05.2009, 20:38
s_p_a_m
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме:
1608432

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

в С++ новичок, но в VS 2008 это не компилится
 
Ответить с цитированием

  #5  
Старый 15.05.2009, 20:46
s_p_a_m
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме:
1608432

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

2 Fata1ex а ты сам то пробовал ?
<stdafx.h> <stdafx> "stdafx" не катит...
 
Ответить с цитированием

  #6  
Старый 15.05.2009, 20:52
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

я писал это в VC++ 6 Так что могут быть расхождения с VC++ 2008
В 2008 это будет как
Файл - Создать - Проект - Консольное приложение Win32
Потом снять галочку "Предварительно скомпилированный модуль" и нажать Готово
Вставить код этот код (удалив всё старое)
и заменить
int main(int argc, char* argv[])
на
int _tmain(int argc, _TCHAR* argv[])
 
Ответить с цитированием

  #7  
Старый 15.05.2009, 20:53
csrss
Познающий
Регистрация: 13.04.2009
Сообщений: 42
Провел на форуме:
293024

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

<stdafx.h> это стандартно генерируещийся хидер. когда новый проект создаёшь, отметь чтоб пустой был (Проект в смысле.).
 
Ответить с цитированием

  #8  
Старый 15.05.2009, 21:01
s_p_a_m
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме:
1608432

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

Не удается открыть файл include: stdafx.h: No such file or directory
 
Ответить с цитированием

  #9  
Старый 15.05.2009, 21:05
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

жестокий у тя Си
тогда просто тупо удаляй include stdafx.h
и пиши
#include <stdio.h>
#include <stdlib.h>
и ставь обратно
int main(int argc, char* argv[])
 
Ответить с цитированием

  #10  
Старый 15.05.2009, 21:18
s_p_a_m
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме:
1608432

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

А где в этом коде строка которая считывает то что я ввожу 8-чное число ?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фейки dgonik777 E-Mail 34 14.06.2009 04:01
Продам шелл на нем 46 дом пр3-4 2 домена пр5 остальные пр0-2 PageRange Доступы, shells, ftp - Покупка, продажа 0 26.12.2008 17:46
Покупаю FTP и веб-шеллы к доменам .edu и др., остальные см. внутри xalex Доступы, shells, ftp - Покупка, продажа 5 05.11.2006 21:47



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


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




ANTICHAT.XYZ