Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

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

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

C++ Буква или цифра?
Для чего используется шестнадцатеричная система счисления? C++
Шестнадцатеричная система счисления C++
C++ Шестнадцатеричная система
4.53. Дано трехзначное число. Определить: а) входит ли в него цифра 6, б) входит ли в него цифра n C++
C++ цифра
C++ Цифра из числа
Цифра в степени C++
Если введена не цифра C++
C++ Записать hex( шестнадцатеричная система счисления ) код файла в блокнот
Шестнадцатеричная чисельная система C++
C++ Дано натуральное число. Верно ли, что цифра "a" встречается в нем реже, чем цифра "b"?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
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.
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
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;
}
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.01.2011, 15:32  [ТС]     Шестнадцатеричная цифра #4
Спасибо!сейчас буду разбираться...

Добавлено через 51 минуту
А вот еще хотелось спросить...а если число вещественное...есть разница между тем как целое и вещественное число представлены в памяти компьютера в 4 байтах в 16ичной записи???....я искала,везде пишут про экспоненциальную форму...а как же вещественное в 16-ичной?Расскажите пожалуйста!
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
14.01.2011, 16:00     Шестнадцатеричная цифра #5
barlog, вот тут про вещественные числа довольно подробно расписано...
Yandex
Объявления
14.01.2011, 16:00     Шестнадцатеричная цифра
Ответ Создать тему
Опции темы

Текущее время: 16:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru