С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
#1

Шестнадцатеричная цифра - C++

14.01.2011, 13:10. Просмотров 795. Ответов 4
Метки нет (Все метки)

как вывести k-ую справа шестнадцатеричную цифру целого положительного числа на экран в десятичной записи?

что-то я не совсем понимаю...ну допустим дана запись 0000 0000 1010 1010 и надо вывести 3ю спава цифру....это 0...так и в десятичной 0!....или мне кажется что я вообще не понимаю что делать.помогите пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 13:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шестнадцатеричная цифра (C++):

Шестнадцатеричная система - C++
Задано шестнадцатеричное число. Напечатать таблицу умножения в шестнадцатеричной системе счисления от 1 до данного числа. Помогите...

Шестнадцатеричная система счисления - C++
Возможно ли такое в шестнадцатирично системе... что значение без букв???? Так как остатки не превышали 9! Вот это число которое я переводил...

Шестнадцатеричная чисельная система - C++
Нужно написать программу для перевода с 10-знаковой системы в 16. Хочу делать по такому плану: если остаток от деления , то просто...

Для чего используется шестнадцатеричная система счисления? - C++
Всем привет, заметил что в больших проектах часто вместо записи обычных чисел их прописывают в шестнадцатеричной система счисления, в чём...

Записать hex( шестнадцатеричная система счисления ) код файла в блокнот - C++
Здравствуйте, как записать hex код файла в блокнот ? Добавлено через 24 минуты проблема решена.

Дано натуральное число. Верно ли, что цифра "a" встречается в нем реже, чем цифра "b"? - C++
Дано натуральное число. Верно ли, что цифра a встречается в нем реже, чем цифра b. Заранее спасибо

4
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
14.01.2011, 13:36 #2
Запись числа отличается в разных системах. Возьмём 123456. В десятичной системе это 123456, третья справа 4. В шестнадцатеричной число уже 1E240, третья справа цифра 2, в двоичной то же число 11110001001000000, третья цифра 0, а в восьмеричной само число 361100, третья цифра 1. Ко всем прочему, записи у тебя нет и с ней ты работать не можешь А как получить цифру? Крайняя правая есть остаток от деления на цело на основание самого числа, вторая справа - остаток от деления на цело на основание целого частного от деления числа на основание, третья - остаток от деления на цело на основание целого частного от деления числа квадрат на основания. А основание у тебя 16. Итого
C++
1
cout<<(x/16/16)%16;
. А в общем виде
C++
1
2
3
4
5
6
7
8
void f(int x, int k);
{
 for (; k>0; --k)
 {
   x/=16;
 }
 cout<<x%16;
}
.

Добавлено через 8 минут
Выведется десятичное значение цифры, то есть, например, при x=123456 и k=4, на экран будет выведено не E, а 14.

Добавлено через 1 минуту
А если столько цифр просто нет, то слева число будет дополнено незначащими нолями, что правильно. Например, десятая цифра числа 123456 равна 0, исходя из того, что само число 0000123456.
1
easybudda
Модератор
Эксперт CЭксперт С++
9699 / 5649 / 964
Регистрация: 25.07.2009
Сообщений: 10,872
14.01.2011, 14:03 #3
Цитата Сообщение от barlog Посмотреть сообщение
как вывести k-ую справа шестнадцатеричную цифру целого положительного числа на экран в десятичной записи?
Диржы n-ную слева
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <math.h>
 
int main(void){
    unsigned num;
    int pos;
    
    while ( printf("Hex number: ") && scanf("%x", &num) == 1 && num ){
        int digits = (int)(log((double)num) / log(16.0)) + 1;
        printf("position from left: ");
        if ( scanf("%d", &pos) != 1 || pos < 1 || pos > digits ){
            fprintf(stderr, "Wrong input!\n");
            return 1;
        }
        printf("Dec value: %d\n", ( num >> ( ( digits - pos ) * 4 ) ) % 16);
    }
    
    return 0;
}
2
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.01.2011, 15:32  [ТС] #4
Спасибо!сейчас буду разбираться...

Добавлено через 51 минуту
А вот еще хотелось спросить...а если число вещественное...есть разница между тем как целое и вещественное число представлены в памяти компьютера в 4 байтах в 16ичной записи???....я искала,везде пишут про экспоненциальную форму...а как же вещественное в 16-ичной?Расскажите пожалуйста!
0
easybudda
Модератор
Эксперт CЭксперт С++
9699 / 5649 / 964
Регистрация: 25.07.2009
Сообщений: 10,872
14.01.2011, 16:00 #5
barlog, вот тут про вещественные числа довольно подробно расписано...
0
14.01.2011, 16:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2011, 16:00
Привет! Вот еще темы с ответами:

4.53. Дано трехзначное число. Определить: а) входит ли в него цифра 6, б) входит ли в него цифра n - C++
4.53. Дано трехзначное число. Определить: а) входит ли в него цифра 6, б) входит ли в него цифра n

цифра - C++
Помогите пожалуйста, нужно написать котороткую программу. смысл такой, человеку предлогается ввести число (обязательно число) --&gt; потом в...

Цифра в степени - C++
Нужна помощь в создании программы которая найдет цифру в заданной степени без pow(). Я запутался создавая эту программу через циклы....

Цифра из числа - C++
Доброе время суток, интересует вот такой вот вопрос, необходимо присвоить значение переменной цифру из числа, т.е есть число A=12345 и мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.