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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2011, 15:22   #1
Dasha_P
Новичок
Джуниор
 
Регистрация: 19.09.2011
Сообщений: 1
По умолчанию Перевести число из десятичной системы в шестнадцатиричную

Здравствуйте!
Помогите пожалуйста решить такую задачу: необходимо число длиной 32 бита(можно больше) перевести из десятичной системы исчисления в шестнадцатиричную, а затем в двоичную.
сам алгоритм пониманию, но программно реализовать не могу(
Dasha_P вне форума Ответить с цитированием
Старый 19.09.2011, 16:07   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
сам алгоритм пониманию
Дык расскажите алгоритм) Может быть пока будете рассказывать и придумаете, как реализовать.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.09.2011, 16:11   #3
rustx88
Пользователь
 
Регистрация: 08.05.2011
Сообщений: 42
По умолчанию

сделаю на С\С++\С#\Delphi\VB\Pascal за вознаграждение
rustx88 вне форума Ответить с цитированием
Старый 22.09.2011, 18:37   #4
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Уважаемая,Dasha_P. Решил я вашу задачу)) Заодно и мозги размял))) Вроде правильно, если не так-профи, поправьте))
Код:
#include <stdio.h>
#include <conio.h>
main()
{
signed long int b;
int a[70],i,c[70],h,g;
printf("Введите а:");
scanf("%d", &b);
a[1]=b/16;
a[2]=b%16;
for(h=2;h<=64;h+=2)
{
a[h+1]=a[h-1]/16;
a[h+2]=a[h-1]%16;
}
printf("Число в шестнадцатиричной система:");
for(i=64;i>=2;i-=2)
{
switch(a[i])
{
case 0:printf("0");continue;
case 1:printf("1");continue;
case 2:printf("2");continue;
case 3:printf("3");continue;
case 4:printf("4");continue;
case 5:printf("5");continue;
case 6:printf("6");continue;
case 7:printf("7");continue;
case 8:printf("8");continue;
case 9:printf("9");continue;
case 10:printf("A");continue;
case 11:printf("B");continue;
case 12:printf("C");continue;
case 13:printf("D");continue;
case 14:printf("E");continue;
case 15:printf("F");continue;
}
}
c[0]=b/2;
c[1]=b%2;
for (g=1;g<=63;g+=2)
{
c[g+1]=c[g-1]/2;
c[g+2]=c[g-1]%2;
}
printf("\nЧисло в двоичнои виде:");
for(g=63;g>=1;g-=2)
{
printf("%d", c[g]);
}
getch();
}

Последний раз редактировалось Диман56; 23.09.2011 в 12:02.
Диман56 вне форума Ответить с цитированием
Старый 10.12.2011, 16:28   #5
kirill174
Новичок
Джуниор
 
Регистрация: 10.12.2011
Сообщений: 1
По умолчанию

Помогите пожалуйста) из десятичной в шестнадцатеричную число семь перевести

Помогите пожалуйста) Из десятичной в шестнадцатеричную, число семь перевести

Последний раз редактировалось Stilet; 10.12.2011 в 19:22.
kirill174 вне форума Ответить с цитированием
Старый 10.12.2011, 17:07   #6
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от kirill174 Посмотреть сообщение
Помогите пожалуйста) Из десятичной в шестнадцатеричную, число семь перевести
Как ни странно, число 7 в шестнадцатеричной системе тоже 7, как и в любой другой системе, с основанием больше семи
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 10.12.2011, 19:21   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Вы что издеваетесь?
Код:
	char c[20];
	int n=7;
	itoa(n,c,2);printf(c);printf("\n");
	itoa(n,c,16);printf(c);
	getchar();
	return 0;
#include <stdlib.h> уже отменили?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2011, 21:53   #8
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

kirill174

Помогите пожалуйста) Из десятичной в шестнадцатеричную, число семь перевести

Код:
int perevod_chisla_7_iz_desyatichnoy_v_shesnadtsatirichnuyu()
{
	unsigned a,b,c,d,x[16];
	a += ((b & c) | (~b & d)) + x[ 0] + (0xd76aa478);
	a = ((a << 7) | (a >> (32-7))); a += b;;
	d += ((a & b) | (~a & c)) + x[ 1] + (0xe8c7b756);
	 d = ((d << 12) | (d >> (32-12))); d += a;;
	c += ((d & a) | (~d & b)) + x[ 2] + (0x242070db);
	 c = ((c << 17) | (c >> (32-17))); c += d;;
	b += ((c & d) | (~c & a)) + x[ 3] + (0xc1bdceee);
	 b = ((b << 22) | (b >> (32-22))); b += c;;
	a += ((b & c) | (~b & d)) + x[ 4] + (0xf57c0faf);
	 a = ((a << 7) | (a >> (32-7))); a += b;;
	d += ((a & b) | (~a & c)) + x[ 5] + (0x4787c62a);
	 d = ((d << 12) | (d >> (32-12))); d += a;;
	c += ((d & a) | (~d & b)) + x[ 6] + (0xa8304613);
	 c = ((c << 17) | (c >> (32-17))); c += d;;
	b += ((c & d) | (~c & a)) + x[ 7] + (0xfd469501);
	 b = ((b << 22) | (b >> (32-22))); b += c;;
	a += ((b & c) | (~b & d)) + x[ 8] + (0x698098d8);
	 a = ((a << 7) | (a >> (32-7))); a += b;;
	d += ((a & b) | (~a & c)) + x[ 9] + (0x8b44f7af);
	 d = ((d << 12) | (d >> (32-12))); d += a;;
	c += ((d & a) | (~d & b)) + x[10] + (0xffff5bb1);
	 c = ((c << 17) | (c >> (32-17))); c += d;;
	b += ((c & d) | (~c & a)) + x[11] + (0x895cd7be);
	 b = ((b << 22) | (b >> (32-22))); b += c;;
	a += ((b & c) | (~b & d)) + x[12] + (0x6b901122);
	 a = ((a << 7) | (a >> (32-7))); a += b;;
	d += ((a & b) | (~a & c)) + x[13] + (0xfd987193);
	 d = ((d << 12) | (d >> (32-12))); d += a;;
	c += ((d & a) | (~d & b)) + x[14] + (0xa679438e);
	 c = ((c << 17) | (c >> (32-17))); c += d;;
	b += ((c & d) | (~c & a)) + x[15] + (0x49b40821);
	 b = ((b << 22) | (b >> (32-22))); b += c;	
	a += ((b & d) | (c & ~d)) + x[ 1] + (0xf61e2562);
	 a = ((a << 5) | (a >> (32-5))); a += b;;
	d += ((a & c) | (b & ~c)) + x[ 6] + (0xc040b340);
	 d = ((d << 9) | (d >> (32-9))); d += a;;
	c += ((d & b) | (a & ~b)) + x[11] + (0x265e5a51);
	 c = ((c << 14) | (c >> (32-14))); c += d;;
	b += ((c & a) | (d & ~a)) + x[ 0] + (0xe9b6c7aa);
	 b = ((b << 20) | (b >> (32-20))); b += c;;
	a += ((b & d) | (c & ~d)) + x[ 5] + (0xd62f105d);
	 a = ((a << 5) | (a >> (32-5))); a += b;;
	d += ((a & c) | (b & ~c)) + x[10] + (0x2441453);
	 d = ((d << 9) | (d >> (32-9))); d += a;;
	c += ((d & b) | (a & ~b)) + x[15] + (0xd8a1e681);
	 c = ((c << 14) | (c >> (32-14))); c += d;;
	b += ((c & a) | (d & ~a)) + x[ 4] + (0xe7d3fbc8);
	 b = ((b << 20) | (b >> (32-20))); b += c;;
	a += ((b & d) | (c & ~d)) + x[ 9] + (0x21e1cde6);
	 a = ((a << 5) | (a >> (32-5))); a += b;;
	d += ((a & c) | (b & ~c)) + x[14] + (0xc33707d6);
	 d = ((d << 9) | (d >> (32-9))); d += a;;
	c += ((d & b) | (a & ~b)) + x[ 3] + (0xf4d50d87);
	 c = ((c << 14) | (c >> (32-14))); c += d;
	b += ((c & a) | (d & ~a)) + x[ 8] + (0x455a14ed);
	 b = ((b << 20) | (b >> (32-20))); b += c;
	a += ((b & d) | (c & ~d)) + x[13] + (0xa9e3e905);
	 a = ((a << 5) | (a >> (32-5))); a += b;;
	d += ((a & c) | (b & ~c)) + x[ 2] + (0xfcefa3f8);
	 d = ((d << 9) | (d >> (32-9))); d += a;;
	c += ((d & b) | (a & ~b)) + x[ 7] + (0x676f02d9);
	 c = ((c << 14) | (c >> (32-14))); c += d;;
	b += ((c & a) | (d & ~a)) + x[12] + (0x8d2a4c8a);
	 b = ((b << 20) | (b >> (32-20))); b += c;	
	a += (b ^ c ^ d) + x[ 5] + (0xfffa3942);
	 a = ((a << 4) | (a >> (32-4))); a += b;;
	d += (a ^ b ^ c) + x[ 8] + (0x8771f681);
	 d = ((d << 11) | (d >> (32-11))); d += a;;
	c += (d ^ a ^ b) + x[11] + (0x6d9d6122);
	 c = ((c << 16) | (c >> (32-16))); c += d;;
	b += (c ^ d ^ a) + x[14] + (0xfde5380c);
	 b = ((b << 23) | (b >> (32-23))); b += c;;
	a += (b ^ c ^ d) + x[ 1] + (0xa4beea44);
	 a = ((a << 4) | (a >> (32-4))); a += b;;
	d += (a ^ b ^ c) + x[ 4] + (0x4bdecfa9);
	 d = ((d << 11) | (d >> (32-11))); d += a;;
	c += (d ^ a ^ b) + x[ 7] + (0xf6bb4b60);
	 c = ((c << 16) | (c >> (32-16))); c += d;;
	b += (c ^ d ^ a) + x[10] + (0xbebfbc70);
	 b = ((b << 23) | (b >> (32-23))); b += c;;
	a += (b ^ c ^ d) + x[13] + (0x289b7ec6);
	 a = ((a << 4) | (a >> (32-4))); a += b;;
	d += (a ^ b ^ c) + x[ 0] + (0xeaa127fa);
	 d = ((d << 11) | (d >> (32-11))); d += a;;
	c += (d ^ a ^ b) + x[ 3] + (0xd4ef3085);
	 c = ((c << 16) | (c >> (32-16))); c += d;;
	b += (c ^ d ^ a) + x[ 6] + (0x4881d05);
	 b = ((b << 23) | (b >> (32-23))); b += c;;
	a += (b ^ c ^ d) + x[ 9] + (0xd9d4d039);
	 a = ((a << 4) | (a >> (32-4))); a += b;;
	d += (a ^ b ^ c) + x[12] + (0xe6db99e5);
	 d = ((d << 11) | (d >> (32-11))); d += a;;
	c += (d ^ a ^ b) + x[15] + (0x1fa27cf8);
	 c = ((c << 16) | (c >> (32-16))); c += d;;
	b += (c ^ d ^ a) + x[ 2] + (0xc4ac5665);
	 b = ((b << 23) | (b >> (32-23))); b += c;;

	return 7;
}
Rififi вне форума Ответить с цитированием
Старый 10.12.2011, 21:59   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Rififi
Ой! а что это за... алгоритм такой?

P.S. Дописано: Хы, не сразу шутку увидел )))) Зачотно
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2011, 23:20   #10
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Rififi, смеялся долго
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать схематично программу с функцией, возвращающей целое число и число с десятичной точкой(Экзам. вопрос). datileo Visual C++ 1 22.06.2011 09:49
Pascal. перевод из десятичной системы счисления в двоичную Xeon332 Помощь студентам 3 24.01.2011 13:54
Как перевести число из 256 системы счисления в десятичную ? alexprey Помощь студентам 5 24.11.2010 16:48
си++ перевод из десятичной системы в двоичную Bonne Помощь студентам 3 21.04.2010 21:18
Помогите перевести число из десятичной в шестнадцатиричную систему TAUREN Помощь студентам 5 06.10.2007 14:06