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

что такое hex - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.71
GLTLT
Сообщений: n/a
05.02.2013, 01:26     что такое hex #1
Здравствуйте вообщем возник вопрос что такое 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/
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
05.02.2013, 01:30     что такое hex #2
это манипулятор из серии setw,setprecision и т.д. он переводит поток в режим отображения 16-ричных чисел на ввод/вывод, вернуться назад в 10-ную манипулятором dec
почему бы не попробывать научиться пользоваться поиском на этом сайте:
http://www.cplusplus.com/reference/ios/hex/?kw=hex
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
05.02.2013, 01:33     что такое hex #3
C++
1
2
3
4
5
6
7
#include <iostream>
using namespace std;
void main()
{
    cout << hex << 255 << endl;
    cout << dec << 255 << endl;
}
GLTLT
Сообщений: n/a
05.02.2013, 01:45     что такое hex #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;
}
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
05.02.2013, 01:50     что такое hex #5
GLTLT, да
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
05.02.2013, 01:52     что такое hex #6
Можете использовать старый printf() с stdio
Yandex
Объявления
05.02.2013, 01:52     что такое hex
Ответ Создать тему
Опции темы

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