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

Составить программу, которая позволяет ввести с клавиатуры шестнадцатеричное число и записать его в переменную a, выполнить требуемую проверку. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Очень стремная задача http://www.cyberforum.ru/cpp-beginners/thread542458.html
На плоскости задано N точек, которые пронумерованы слева на право (а при равных абсциссах снизу вверх). Нужно создать программу, которая строит многоугольник, который является выпуклой их оболочкой, не более чем за C*N действий.
C++ Прибавить к элементам каждого столбца первой матрицы произведения элементов соответствующих строк второй Привет ВСЕМ!!! Помогите пожалуйста с одной задачкой!!!) Пусть даны две вещественные матрицы порядка N. Получить новую матрицу следующим способом: прибавлением к элементам каждого столбца первой матрицы произведения элементов соответствующих строк второй матрицы. Заранее ВСЕМ благодарен!!! http://www.cyberforum.ru/cpp-beginners/thread542451.html
C++ Не передается массив в функцию
Всем привет,не могу передать массив в функцию,после передачи массив получается пустой ILuaObject *args; args =(ILuaObject *)g_Lua->GetReference(1); args =(ILuaObject *)g_Lua->GetString(2); g_Lua->Msg("argsize:"); g_Lua->Msg(itos(sizeof(args) / sizeof(args))); g_Lua->Msg("\n"); InvokeMetaFunc("Player","Kick",sizeof(args) / sizeof(args),false,args);
C++ Ошибка при вызове деструктора
Программа компилиться нормально,но после выполнения system("pause"); выползает непонятное окно,и указывает на ошибку в деструкторе.В чем может быть проблема? Заранее спасибо. #include <iostream.h> /////////////////////////////////////////////////////////// class Array //моделирует обычный массив C++ { private: int* ptr; //указатель на содержимое...
C++ Как создать массив массивов http://www.cyberforum.ru/cpp-beginners/thread542393.html
Привет всем!!!! У меня вопрос такой: можно ли в Си++ задать массив, например, 3на5, в котором элементами будут также массивы 5на5? и если можно, то как?
C++ Дано строка состоящая из нескольких слов, разделенных пробелом. Определить какое из них содержит наименьшее количество символов. Требуется помощь, пожалуйста. подробнее

Показать сообщение отдельно
stanis-morozov
15 / 15 / 1
Регистрация: 18.03.2012
Сообщений: 91
08.04.2012, 16:25     Составить программу, которая позволяет ввести с клавиатуры шестнадцатеричное число и записать его в переменную a, выполнить требуемую проверку.
Ну во-первых считывание шестнадцатеричного числа. Функции printf() и scanf() поддерживают ввод-вывод восьмеричных, десятеричных и шестнадцатеричных чисел. Для шестнадцатеричных чисел используется идентификатор %x. Тогда считать шестнадцатеричное число мы можем так:
C++
1
2
unsigned int a;
scanf("%x", &a);
Далее, проверка битов. Проверить n-ый бит можно, взяв число, в котором n-ый бит равен 1, а все остальные равны 0 и осуществить операцию & (И) с числом, бит которого мы хотим проверить.
То есть, например для 11 бита делаем так:
100000000002 = 102410
Тогда код будет следующий:
C++
1
2
3
4
5
6
7
8
9
unsigned int bit11 = 1024;
if (a & bit11)
{
    printf("Eleventh bit is 1\n");
}
else
{
    printf("Eleventh bit is 0\n");
}
Для 15-го бита аналогично 1000000000000002 = 1638410
C++
1
2
3
4
5
6
7
8
9
unsigned bit15 = 16384;
if (a & bit11)
{
    printf("Fifteenth bit is 1\n");
}
else
{
    printf("Fifteenth bit is 0\n");
}
и т.д.
если нам нужно проверить, установлен ли хотя бы один из битов (11 или 15) в 1, то будет писать:
C++
1
2
3
4
5
6
7
8
if ((a & bit11) | (a & bit15))
{
    printf("Eleventh or fiftennth bit is 1\n");
}
else
{
    printf("Eleventh and fifteenth bits are 0\n"); 
}
Ну а теперь установим в 1 биты номер 1, 3, 5, 6, 8, 10, 11, 12 и 13.
Для это нам нужно взять число в котором только эти биты установлены в 1 и произвести операцию |(ИЛИ).
11110101101012 = 786110
Тогда пишем
C++
1
2
3
unsigned int b, k = 7861;
b = a | k;
printf("%x\n", b);
Это если мы хотим вывести число в шестнадцатеричной форме.
Если в восьмеричной:
C++
1
printf("%o\n", b);
В десятичной:
C++
1
printf("%d\n", b);
В десятичной без знака:
C++
1
printf("%u\n", b);
 
Текущее время: 13:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru