Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Vaseje
0 / 0 / 0
Регистрация: 16.04.2018
Сообщений: 6
1

Кто сможет объяснить что означает в этом коде 0x55555, что это такое, для чего предназначено?

16.04.2018, 10:40. Просмотров 874. Ответов 5
Метки нет (Все метки)

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
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "stdafx.h"
#pragma warning(disable : 4996)   
#include <stdio.h>
#include <conio.h>
#include <iostream>
 
int main()
{
        //Необходимые переменные
        int i, j;
        char s[256];
        char ans[256] = { 0 };
        int mask;
        //Ввод данных
        printf("Enter line: ");
        scanf("%s", &s);
        //Вывод битового представление буквы
        for (j = 0; j < strlen(s); ++j) {
            printf("\tBits perfomance of character '%c': ", s[j]);
            for (i = 0; i < 8; ++i) {
                mask = 1 << i;
                if ((s[j] & mask) > 0)
                    printf("1");
                else
                    printf("0");
            }
            printf("\n");
        }
        //Подсчет ответа
        for (j = 0; j < strlen(s); ++j) {
            ans[j] = ((s[j] & 0x5555) << 1) | ((s[j] >> 1) & 0x5555);
        }
        //Вывод битового представления результата
        for (j = 0; j < strlen(s); ++j) {
            printf("\tBits perfomance of character result '%c': ", s[j]);
            for (i = 0; i < 8; ++i) {
                mask = 1 << i;
                if ((ans[j] & mask) > 0)
                    printf("1");
                else
                    printf("0");
            }
            printf("\n");
        }
        //Вывод ответа
        printf("This is line: %s \n\n", ans);
        printf("Enter any key to close the program\n");
        system("pause");
        return 0;
    }
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2018, 10:40
Ответы с готовыми решениями:

Кто-нибудь может подробно объяснить, что такое allocators, зачем это и что с ними делать? Нигде не нашёл инфы
Заранее спасибо.

Что это такое и для чего?
ребята что это? зачем это? и как подключить?

Что такое #, include, что это означает
______

Для чего предназначено бинарное дерево, что оно делает?
народ подскажите пожалуйста для чего предназначено бинарное дерево? что оно делает? (надо делать...

IsExit: что это такое и для чего используется?
Что это такое и для чего используется?

5
CoderHuligan
813 / 539 / 201
Регистрация: 30.06.2015
Сообщений: 2,997
Записей в блоге: 13
16.04.2018, 12:48 2
Лучший ответ Сообщение было отмечено HighPredator как решение

Решение

http://graphics.stanford.edu/~seande...itsSetParallel
1
Vaseje
0 / 0 / 0
Регистрация: 16.04.2018
Сообщений: 6
16.04.2018, 13:40  [ТС] 3
можно подробней, все равно непонятно, заранее спасибо
0
liv
1146 / 933 / 196
Регистрация: 07.10.2015
Сообщений: 3,026
Завершенные тесты: 1
16.04.2018, 14:52 4
Vaseje, это маска, которая выделяет соответствующие биты.
Т.к. работаем с байтами, то можно было написать
C
1
ans[j] = ((s[j] & 0x55) << 1) | ((s[j] >> 1) & 0x55);
Что делается? Очередной байт получается, как дизъюнкция двух временных байт. Первый: берутся биты старого байта по маске 0x55, которые сдвигаются на один бит влево. Второй: старый байт сдвигается вправо на один бит, после чего оставляем только биты по той же маске 0x55. Неужели так сложно?
PS Надеюсь, Вы в курсе, что такое конъюнкция и дизъюнкция
0
Vaseje
0 / 0 / 0
Регистрация: 16.04.2018
Сообщений: 6
18.04.2018, 09:57  [ТС] 5
теперь понятно, спасибо)

Добавлено через 22 часа 9 минут
Ещё вопрос. В программе наложена одни та же маска. По идее можно наложить 2 маски: одна будет отвечать за четные биты, а другая за нечетные. В программе наложена 1 маска и работает она правильно. Вопрос: почему при наложении 1 маски программа работает правильно?
0
liv
1146 / 933 / 196
Регистрация: 07.10.2015
Сообщений: 3,026
Завершенные тесты: 1
18.04.2018, 10:59 6
Цитата Сообщение от Vaseje Посмотреть сообщение
В программе наложена одни та же маска
Ну вот так сделано.
Сделайте по-другому, если хотите...
А по сути, значение-то одно, а фактически это разные маски. Применены в разных случаях.
0
18.04.2018, 10:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2018, 10:59

Swapfile.sys Что это такое и для чего оно?
Я считаю что этот файл занимает много места. Реально ли удалить. Я знаю как уменьшить...

Что такое md5? Для чего это нужно? Где используется?
Всем доброго времени суток! Что такое md5? Для чего это нужно? Где используется? Спасибо!

Кто может объяснить что такое CLR?
Что вообще делает CLR? читала но как то не особо поняла:-|


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

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

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