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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2012, 21:42   #1
S.J
Пользователь
 
Регистрация: 29.09.2011
Сообщений: 27
Печаль Строки

Здесь идёт преобразования из двоичной в 16теричную систему,помогите пожалуйста сделать,чтобы из 10тиричной в восьмиричную.
Код:
#include <stdio.h>
#include <math.h>

int main(int argc, char *argv[])
{
	printf("Vvedite v stroku chislo v 2-noi sisteme schislenia: ");
	char s[51], strout[15];
	int tmp=0;
	gets(s);
	int len=0;
	for (int i=0; s[i]!=0; i++) {
		len++;
	}
	int x=len-len/4*4, i=0, n=0, z;
	if(x==0) {x=4;}
	while (s[i]!=0) {
		 for(int j=4-x; j<4; j++){
			 switch (s[i]) {
				 case '0': {z=0; break;}
				 case '1': {z=1; break;}
			 }
			 tmp += z*pow(10,fabs(j-3));
			 i++;
		 }
		 x=4;
		 switch (tmp){
			 case 0: {strout[n]='0';break;}
			 case 1: {strout[n]='1';break;}
			 case 10: {strout[n]='2';break;}
			 case 11: {strout[n]='3';break;}
			 case 100: {strout[n]='4';break;}
			 case 101: {strout[n]='5';break;}
			 case 110: {strout[n]='6';break;}
			 case 111: {strout[n]='7';break;}
			 case 1000: {strout[n]='8';break;}
			 case 1001: {strout[n]='9';break;}
			 case 1010: {strout[n]='A';break;}
			 case 1011: {strout[n]='B';break;}
			 case 1100: {strout[n]='C';break;}
			 case 1101: {strout[n]='D';break;}
			 case 1110: {strout[n]='E';break;}
			 case 1111: {strout[n]='F';break;}
		 }
		n++;
		tmp=0;
	}
		
	strout[n]=0;
	printf("Eto chislo v 16-noi sisteme schislenia: ");
	puts(strout);
	
	return 0;
}

Последний раз редактировалось ACE Valery; 16.03.2012 в 23:29.
S.J вне форума Ответить с цитированием
Старый 16.03.2012, 22:17   #2
crymchanin
Пользователь
 
Аватар для crymchanin
 
Регистрация: 01.02.2012
Сообщений: 84
По умолчанию

А что sprintf отменили?
crymchanin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности kris__tina БД в Delphi 1 09.06.2011 15:31
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, Шпунюся Помощь студентам 1 16.12.2010 21:02
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10