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

Машана Тюринга - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ написать программу,чтоб на печать вывелась таблица http://www.cyberforum.ru/cpp-beginners/thread385516.html
Пожалуста напишите программу буду благодарен. Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п. Нужно написать программу,чтоб на печать вывелась эта...
C++ Написать программу, выводящую на экран сумму и среднее арифметическое N случайных чисел Написать программу, выводящую на экран сумму и среднее арифметическое N случайных чисел, заданных в диапазоне от А до В. Основная программа запрашивает значения N, А, В и передает их в функцию.... http://www.cyberforum.ru/cpp-beginners/thread385512.html
Найти количество строк матрицы, элементы которых упорядочены по возрастанию. C++
Дана матрица размера M × N. Найти количество ее строк, элементы которых упорядочены по возрастанию.
Конструктор копирования для класса с указателем на абстрактный класс C++
Всем привет. Как реализовать конструктор копирования для класса Foo? class Base { public: ... virtual void DoSmth() = 0; }; class DerivedOne : public Base
C++ def файл http://www.cyberforum.ru/cpp-beginners/thread385487.html
Случайно добавил в проект def файл. После его удаления выбивает ошибка error LNK1104: не удается открыть файл "week.def". Помогите пожалуйста. VS2010...
C++ Есть ли функция в библиотеке string.h, которая ищет в слове определенный символ? есть ли функция в библиотеке string.h, которая ищет в слове определенный символ ? например слово world, дан символ q. Нужно проверить встречается ли в слове world символ q. Запрещено создавать темы... подробнее

Показать сообщение отдельно
alkagolik
Заблокирован
16.11.2011, 23:16
Цитата Сообщение от Ylubochka Посмотреть сообщение
спасибо только не понимаю как она работает(
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
29
30
#include <cstdio>
 
int main()
{
    unsigned int x, tmp = (1 << 31);
/*
переменная tmp = 2 в степени 31 т.е. мы устанавливаем 32 й бит (их 
всего 32) в единицу, а все остальные биты в нуль
*/
    printf("введите шестнадцатиричное число х = ");
    scanf("%x", &x);
/*
спецификатор %x сообщает компилятору о том что число шестнадцатиричное
*/
    while ( x ) //пока х не равен 0
    {
        printf("%u", (x & tmp) >> 31);
/*
спецификатор %u сообщает компилятору о том что число беззнаковое
это значит что все 32 бита отведены под значения, в то время как в знаковых
32й бит отвечает за знак "+" или "-"
(x & tmp) >> 31 мы производим векторное логическое И (конъюнкция) двух значений
поскольку мы знаем точно что tmp во всех битах кроме 32-го имеет нули, то мы извлекаем из этого
выгоду, а именно - значение 32-го бита переменной tmp, после чего мы сдвигаем это значение
на 31 позицию вправо, т.е. устанавливаем его из 32-го бита в 1-й и получаем 0 или 1
*/
        x <<= 1; //сдвигаем х на 1 бит влево
    }
    return 0;
}
я забыл учесть особенности архитектур

Добавлено через 5 минут
вот так с учетом архитектур
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cstdio>
 
int main()
{
    unsigned int x, tmp = (1 << (sizeof(unsigned int) * 8 - 1) );
    printf("введите десятично число х = ");
    scanf("%x", &x);
    while ( x )
    {
        printf("%u", (x & tmp) >> (sizeof(unsigned int) * 8 - 1));
        x <<= 1;
    }
    return 0;
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru