С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.51/41: Рейтинг темы: голосов - 41, средняя оценка - 4.51
GLTLT
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 2
1

что такое hex

05.02.2013, 01:26. Просмотров 7581. Ответов 5
Метки нет (Все метки)

Здравствуйте вообщем возник вопрос что такое hex и как он работает. У меня была простая программка BitTest - инициируются две переменные и выводится результаты выполнения операторов ~, &, | и ^. Но при написании её возникла трудность результат выводился 10 системой исчисления а я хотел 16. Долга иска в чем косяк наткнулся на похожую программку и заметил что в cout добавлено вот это << hex/*преобразование десятичного числа в шестнадцатеричное*/, решив это повторить у меня все заработало как я хотел. Но я все ровно не понял почему прошу вас поясните мне как все заработало, и вот еще что заметил мне потребовалось всего один раз вставить hex что бы везде поменялось число с десятичного в шестнадцатеричное, связи с этим тоже вопрос а как сделать так что бы у меня выводил и в десятичной системе, то есть пусть первый cout << "Arg1" << nArg1 в шестнадцатеричной, а cout << "Arg2" << nArg2 в десятичной

BitTest

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// BitTest - инициируются две переменные и
//           выводится результаты  выполнения
//           операторов ~, &, | и ^
#include <stdio.h>
#include <iostream>
using namespace std;
int main(int nArg, char* pszArgs[])
{
    //установка вывода в шестнадцатиричном виде
    cout.setf(ios::hex, ios::hex);
    //инициализация двух аргументов
    int nArg1 = 0x1234;
    int nArg2 = 0x00ff;
 
    //Выполнение логических операций
    // Сначала применяем унарный оператор NOT
    cout << "Arg1          = 0x" << hex << nArg1 << "\n"; // <<hex - без него не выводит 16 ответ, а выводит 10
    cout << "Arg2          = 0x" << nArg2 << "\n";
    cout << "~nArg1        = 0x" << ~nArg1 << "\n";
    cout << "~nArg2        = 0x" << ~nArg2 << "\n";
 
    // Теперь - бинарные операторы
    cout << "nArg1 & nArg2 = 0x" << (nArg1 & nArg2) << "\n";
    cout << "nArg1 | nArg2 = 0x" << (nArg1 | nArg2) << "\n";
    cout << "nArg1 ^ nArg2 = 0x" << (nArg1 ^ nArg2) << "\n";
 
    return 0;
}
похожий код из которого я взял hex

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// translate.cpp: определяет точку входа для консольного приложения.
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "rus");
    int number;
 
    cout << "Введите число: ";
    cout.setf(ios::showbase); // индикатор основания системы
    cin >> number;
    cout << "Шестнадцатеричная форма записи числа " << number << " = "
         << hex/*преобразование десятичного числа в шестнадцатеричное*/ << number << endl;
 
    system("pause");
    return 0;
}
взят с сайта http://cppstudio.com/praktikum/sborn...adcaterichnoe/
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2013, 01:26
Ответы с готовыми решениями:

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с...

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель?
Что такое хэндлер файла? Что такое файловый указатель?

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите ...

Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере
Есть класс, содержащий объекты и конструктор. Конструктор объявляется в одном...

5
abit
273 / 272 / 83
Регистрация: 03.02.2013
Сообщений: 774
05.02.2013, 01:30 2
это манипулятор из серии setw,setprecision и т.д. он переводит поток в режим отображения 16-ричных чисел на ввод/вывод, вернуться назад в 10-ную манипулятором dec
почему бы не попробывать научиться пользоваться поиском на этом сайте:
http://www.cplusplus.com/reference/ios/hex/?kw=hex
1
Пёс
228 / 76 / 9
Регистрация: 03.02.2013
Сообщений: 311
05.02.2013, 01:33 3
C++
1
2
3
4
5
6
7
#include <iostream>
using namespace std;
void main()
{
    cout << hex << 255 << endl;
    cout << dec << 255 << endl;
}
1
GLTLT
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 2
05.02.2013, 01:45 4
спасибо, вот только вопрос после того когда я напишу dec он и последующие будет показывать в 10-ную то есть например так:
C++
1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
void main()
{
    cout << hex << 255 << endl;
    cout << dec << 255 << endl;
    cout << 255 << endl;
}
0
Пёс
228 / 76 / 9
Регистрация: 03.02.2013
Сообщений: 311
05.02.2013, 01:50 5
GLTLT, да
0
Dr.Urban
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
05.02.2013, 01:52 6
Можете использовать старый printf() с stdio
0
05.02.2013, 01:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2013, 01:52

Если HEX одного файла заменить на HEX другого, то изменится ли файл и будет ли работоспособным?
Привет, если два файла a.exe(калькулятор) и b.exe(выводит строку &quot;Hello World&quot;)...

Перевод из HEX в ASCII и ещё кое - что
Народ, как строку в HEX типа 3A 30 31 30 36 перевести в ASCII типа :0106 ? А...

Что такое перегрузка оператора? Что у меня в коде за ошибка?
Что же я написал?? Что оно не компилится? Что значит error C2275: Superclass:...


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

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

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