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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.74
Marisha
13 / 13 / 0
Регистрация: 18.08.2011
Сообщений: 34
#1

Вывод числа в 16-ричной форме - C++

16.03.2012, 10:49. Просмотров 6754. Ответов 6
Метки нет (Все метки)

Пушу на Visual C++

Нужно вывести число (char) в Edit Control (с String переменной m_Edit) в 16-ом виде (0x01)...


C++
1
2
3
4
5
6
char temp = 0x01;
Cstring list;
 
list.Format(_T("%d"), temp);
 
m_Edit=list;
но выводится 1, а нужно 0x01
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2012, 10:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод числа в 16-ричной форме (C++):

Вывод числа на экран в словесной форме - C++
начал изучать учебник Динман М.И. - C++. Освой на примерах и там в конце первой главы упражнение звучит так "Напишите...

Вывод отсортированного массива в 16-ричной системе - C++
есть массив заполненный делаю sort ....и хочу чтобы вывод был в 16-ричной системе,не получается((( sort(arr.begin(), arr.end()); p =...

Масив принимает в 16-ричной, а выдаёт в 10-ричной - C++
Народ подскажите в чом может быть проблема ? Задание :Дан массив чисел размерностью 10 элементов. Написать функцию, которая сортирует...

Палиндром записи числа в 16-ричной системе счисления - C++
Среди всех четырехзначных чисел найти числа, запись которых в 16-р системе исчисления представляет собой палиндром, и подсчитать количество...

Что такое 'p' в 16-ричной записи дробного числа? - C++
Есть такое число 0x1.ec7ae147ae148p6, вот что здесь обозначает p и где разделение между целой и дробной частью я не пойму , толковых...

Вывод символов в привычной форме - C++
При запуске программы в Dev c++ все символы отображаются не в виде русского или английского текста,а в виде непонятных символов( видимо...

6
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
16.03.2012, 11:43 #2
как-то так
C++
1
hex<<32<<число<<endl;
для Вашего примера
C++
1
list.Format(_T("%x"), temp);
или даже
C++
1
list.Format(_T("%hhx"), temp);
1
Marisha
13 / 13 / 0
Регистрация: 18.08.2011
Сообщений: 34
16.03.2012, 12:01  [ТС] #3
что-то всё равно 1-ку выводит... ну в принципе это ладно, нолик-то могу приписать

но во если взять
C++
1
char  temp = 0xAA;
то выводит ffaa
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
16.03.2012, 12:03 #4
вот что по этому поводу пишет вики

Например, рассмотрим реализацию Си, где тип char знаковый и имеет размер 8 бит, тип int имеет размер 32 бит, используется дополнительный способ кодирования отрицательных целых.

C++
1
2
char c = 255;
printf("%X", c);
Такой вызов даст вывод FFFFFFFF, что, возможно, не то, чего ожидал программист. Действительно, значение c равно (char)(-1), а после продвижения типа оно оказывается равно -1. Применение формата %X вызывает интерпретацию данного значения как беззнакового, то есть, 0xFFFFFFFF.

C++
1
2
char c = 255;
printf("%X", (unsigned char)c);
C++
1
2
char c = 255;
printf("%hhX", c);
Эти два вызова имеют один и тот же эффект и дают вывод FF. Первый вариант позволяет избежать размножения знака при продвижении типа, второй — компенсирует его уже «внутри» функции printf.
2
Marisha
13 / 13 / 0
Регистрация: 18.08.2011
Сообщений: 34
16.03.2012, 12:14  [ТС] #5
Спасибо!!! Всё получилось! =)
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
16.03.2012, 12:19 #6
Цитата Сообщение от Marisha Посмотреть сообщение
Спасибо!!! Всё получилось! =)
покажите итоговый код, плз
0
Рыжий Лис
Просто Лис
344 / 268 / 80
Регистрация: 17.05.2012
Сообщений: 1,116
Записей в блоге: 4
22.12.2012, 09:39 #7
Вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <windows.h>
#define null '\0'
int main()
{ const int len = 512;
  unsigned char buf[len];
  FILE *file = fopen("\\\\.\\PHYSICALDRIVE0","rb");
  if (!file)
  { puts("Ошибка открытия файла!");
    return 1;
  }
  fread(buf, sizeof(char), len, file);
  fclose(file);
  for (int i=0; i<len; ++i)
  { if (buf[i]<16)
      printf("0");
    printf("%X ", buf[i]);
  }
}
Спасибо всем
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2012, 09:39
Привет! Вот еще темы с ответами:

Вывод количества монет в правильной грамматической форме - C++
Здравствйте! Задача 11 3 глава в книге Б. Страуструпа Большая часть программы решена, но последняя часть задания добила... ...

Ввод двузначного числа и вывод обратного числа - C++
Помогите пожалуйста сделать( Арифметика: Z=4 cosα2 ⋅cos52 α⋅cos 4α Текст: Составить программу, в которая запрашивает ввод...

Перевод из 16-ричной СС в 10 - C++
Здравствуйте, есть функция: void calc(int num,int base) { if (num == 0) return; int rem = num % base; if...

ввод n-значного числа, вывод цифр, из которых оно состоит и вывод суммы его цифр. - C++
Написать программу, осуществляющую ввод n-значного числа, вывод цифр, из которых оно состоит и вывод суммы его цифр. Подключить...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
22.12.2012, 09:39
Ответ Создать тему
Опции темы

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