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

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

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

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

16.03.2012, 10:49. Просмотров 6579. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2012, 10:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод числа в 16-ричной форме (C++):

Выписать алфавиты 2-ичной, 5-ричной, 8-ричной, 16-ричной систем счисления - Информатика
Выписать алфавиты 2-ичной, 5-ричной, 8-ричной, 16-ричной систем счисления.

Считая последовательность 16-ричной записью натурального числа, вывести десятичный эквивалент данного числа - Python
Пользователь вводит некоторую последовательность,состоящую только цифр 0 – 9 и букв A – F. Считая ее шестнадцатеричной записью натурального...

Вывод числа в двоичной форме - PascalABC.NET
Есть ли в Pascal ABC Net стандартные ф-ции для вывода числа в двоичной форме?

сделать сложения двух чисел (одно в троичной системе второе в 8-ричной) и вывести результат в 8-ричной - Delphi
Привет всем, сегодня столкнулся с такой вот задачей, нужно сделать сложения двух чисел (одно в троичной системе второе в 8-ричной) и...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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);
Marisha
13 / 13 / 0
Регистрация: 18.08.2011
Сообщений: 34
16.03.2012, 12:01  [ТС] #3
что-то всё равно 1-ку выводит... ну в принципе это ладно, нолик-то могу приписать

но во если взять
C++
1
char  temp = 0xAA;
то выводит ffaa
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.
Marisha
13 / 13 / 0
Регистрация: 18.08.2011
Сообщений: 34
16.03.2012, 12:14  [ТС] #5
Спасибо!!! Всё получилось! =)
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
16.03.2012, 12:19 #6
Цитата Сообщение от Marisha Посмотреть сообщение
Спасибо!!! Всё получилось! =)
покажите итоговый код, плз
Рыжий Лис
Просто Лис
271 / 218 / 58
Регистрация: 17.05.2012
Сообщений: 911
Записей в блоге: 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]);
  }
}
Спасибо всем
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2012, 09:39
Привет! Вот еще темы с ответами:

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

Перевод числа из 16-ричной СС - C#
Скажите, как в c# &quot;объяснить&quot; программе по переводу чисел в различные СС, что ABCD и т.д. это 10,11,12...Искала на форуме, но не поняла...

Перевод заданного числа из I-ричной в J-ричную СС - Delphi
можете написать программу которая переводит задонное число из I-ричной в J-ричную ограничения 2&lt;=I,J&lt;=36 число разрядов исходного числа не...

Перевод натурального числа из 16 ричной в 10 тичную - Pascal
У меня такой вопрос, можете объяснить для чего применяются в этой программе эти две строчки и что обозначают эти два символа: '$'+s ...


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

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

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