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

Побитовые опреции в си.Как решить ??? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вопрос к опытным програмистам http://www.cyberforum.ru/cpp-beginners/thread106356.html
Ситуация такова, начинаю учить программирование в целом ну и Си++ в частности, как показало множество самостоятельных заданий в книге у меня немного туго с логикой решения задачи, да может я туп и...
C++ char[] в int, float. Интересует такой вопрос: Допустим у меня есть массив из char, и в этом массиве посимвольно лежат цифры (через %s), т.е: char ach; a='1' a='2' a='8' a='\0' http://www.cyberforum.ru/cpp-beginners/thread106328.html
Анимация для игры C++
Привет, народ. Вот, начал писать игру на плюсах (хочу че-нибудь типа Принца Персии 2D), изучаю SDL и вот возникла проблема, не знаю на чем лучше спрайты рисовать... Начал с Corel Paint Shop Pro...
C++ Работа с динамическими строками
Итак, мне нужны 2 процедуры: 1.добавление символа в конец динамической строки и 2.удаление символа из конца динамической строки. Первая работает правильно: void addToEnd(char newC, char *&data, int...
C++ Найти максимальный элемент матрицы http://www.cyberforum.ru/cpp-beginners/thread106301.html
помогите найти максимальный элемент матрицы.Оформить в виде функции
C++ Наследование Помогите доделать прогу... Нужно сделать иерархию классов студент и отец -> семейство Почти все сделано..но с ошибками=( и без инициализации #include <iostream> #include <string.h> #include... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9629 / 5577 / 947
Регистрация: 25.07.2009
Сообщений: 10,712
19.03.2010, 10:34
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
31
32
33
34
35
36
37
#include <stdio.h>
#include <limits.h>
    
/* Дано длинное целое неотрицательное число. Получить число, инвертируя его нечетные биты. */
 
/* функция, печатающая число в двоичном виде (для наглядности) */
void binPrn(unsigned long val){
    int i;
    for ( i = CHAR_BIT * sizeof(long) - 1; i >= 0; --i )
        printf("%d", val >> i & 1);
}
 
int main(void){
    unsigned long num, mask;
    int i;
    
    while ( 1 ){
        printf("\nNumber:\t");
        if ( scanf("%lu", &num) != 1 || !num )
            break;
        printf("Befor:\t");
        binPrn(num);
        printf("\t(%lu)\n", num);
        for ( i = 1; i < CHAR_BIT * sizeof(long); i += 2 ){
            mask = num & 1 << i;
            if ( mask )
                num ^= mask;
            else
                num |= 1 << i;
        }
        printf("After:\t");
        binPrn(num);
        printf("\t(%lu)\n", num);
    }
    
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru