Другие языки программирования и технологии
Преобразовать число со знаком в десятичное
Преобразовать число со знаком 0ECH в десятичное
/* В шестнадцатиричной системе нет H. Я написал программу на языке Си, которая считывает шестнадцатиричное число с клавиатуры в командной строке и преобразует его в десятичное, выводя на экран.
Скомпилируйте программу и выполните, введя нужное число и нажав Enter
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{
const int size = 10;
char * num_hex;
num_hex = malloc(size);
int num_dec = 0;
scanf("%s", num_hex);
int len = strlen(num_hex);
for(int x = len - 1, y = 1; x >= 0; x--, y++)
{
int tmp_num;
switch(num_hex[x])
{
case '0':
tmp_num = 0;
break;
case '1':
tmp_num = 1;
break;
case '2':
tmp_num = 2;
break;
case '3':
tmp_num = 3;
break;
case '4':
tmp_num = 4;
break;
case '5':
tmp_num = 5;
break;
case '6':
tmp_num = 6;
break;
case '7':
tmp_num = 7;
break;
case '8':
tmp_num = 8;
break;
case '9':
tmp_num = 9;
break;
case 'A': case 'a':
tmp_num = 10;
break;
case 'B': case 'b':
tmp_num = 11;
break;
case 'C': case 'c':
tmp_num = 12;
break;
case 'D': case 'd':
tmp_num = 13;
break;
case 'E': case 'e':
tmp_num = 14;
break;
case 'F': case 'f':
tmp_num = 15;
break;
default:
printf("Неверное значение! \'%c\'\n", num_hex[x]);
return 1;
}
num_dec += pow(tmp_num, y);
}
printf("%d\n", num_dec);
free(num_hex);
num_hex = NULL;
return 0;
}
Скомпилируйте программу и выполните, введя нужное число и нажав Enter
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{
const int size = 10;
char * num_hex;
num_hex = malloc(size);
int num_dec = 0;
scanf("%s", num_hex);
int len = strlen(num_hex);
for(int x = len - 1, y = 1; x >= 0; x--, y++)
{
int tmp_num;
switch(num_hex[x])
{
case '0':
tmp_num = 0;
break;
case '1':
tmp_num = 1;
break;
case '2':
tmp_num = 2;
break;
case '3':
tmp_num = 3;
break;
case '4':
tmp_num = 4;
break;
case '5':
tmp_num = 5;
break;
case '6':
tmp_num = 6;
break;
case '7':
tmp_num = 7;
break;
case '8':
tmp_num = 8;
break;
case '9':
tmp_num = 9;
break;
case 'A': case 'a':
tmp_num = 10;
break;
case 'B': case 'b':
tmp_num = 11;
break;
case 'C': case 'c':
tmp_num = 12;
break;
case 'D': case 'd':
tmp_num = 13;
break;
case 'E': case 'e':
tmp_num = 14;
break;
case 'F': case 'f':
tmp_num = 15;
break;
default:
printf("Неверное значение! \'%c\'\n", num_hex[x]);
return 1;
}
num_dec += pow(tmp_num, y);
}
printf("%d\n", num_dec);
free(num_hex);
num_hex = NULL;
return 0;
}
А число в какой системе счисления?
Рустам Балгабаев
Шестнадцатеричная
Похожие вопросы
- Перевести число 0,35 из десятичной системы в восьмеричную
- В специализированной ЭВМ целые числа рассматриваются как числа со знаком и представляются в дополнительном коде. Для х
- Как представленное ниже значение в двоичном дополнительном коде преобразовать в десятичный формат? число 11010
- Напомните, как переводить двоичное число в десятичное?
- Переведите число 111 из десятичной системы счисления в двоичную систему счисления.
- Число 10 (в десятичной системе счисления) в двоичной системе счисления имеет вид???
- Узнать сколько знаков после запятой в числе? Visual Basic
- Двоичное число. Может кто знает, а? Двоичному числу 101101 соответствует десятичное число ...Заранее огромное спасибо!
- Помогите написать программу перевода чисел из двоичного формата в десятичный на языке C#
- Как при восьмеричном коде компьютер понимает сколько знаков (цифр) в числе?
Я исправил:
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{
const int size = 10;
char * num_hex;
num_hex = malloc(size);
int num_dec = 0;
scanf("%s", num_hex);
int len = strlen(num_hex);
{
int tmp_num;
switch(num_hex[x])
{
case '0':
tmp_num = 0;
break;
case '1':
tmp_num = 1;
break;
case '2':
tmp_num = 2;
break;
case '3':
tmp_num = 3;
break;
case '4':
tmp_num = 4;
break;
case '5':
tmp_num = 5;
break;
case '6':
tmp_num = 6;
break;
case '7':
tmp_num = 7;
break;
case '8':
tmp_num = 8;
break;
case '9':
tmp_num = 9;
break;
case 'A': case 'a':
tmp_num = 10;
break;
tmp_num = 11;
break;
case 'C': case 'c':
tmp_num = 12;
break;
case 'D': case 'd':
tmp_num = 13;
break;
case 'E': case 'e':
tmp_num = 14;
break;
case 'F': case 'f':
tmp_num = 15;
break;
default:
printf("Неверное значение! \'%c\'\n", num_hex[x]);
return 1;
}
num_dec += tmp_num * pow(16, y);
}
printf("%d\n", num_dec);
free(num_hex);
num_hex = NULL;
return 0;
}