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

Преобразование Букв в двоичный код - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Все слова из входного потока поместить в выходной поток с новой строки http://www.cyberforum.ru/cpp-beginners/thread292875.html
Здравствуйте уважаемые программисты помогите пожалуйста текст задачи: все слова из входного потока, помещать в выходной поток с новой строки спасибо большое С уважением, Андрей
C++ Масив с разним количеством елементов В подразделении Y есть 15 сотрудников, а в G - 20. На протяжении месяца они отработали количество дней которое задано как случайное число от 0 до 31 Дневная оплата труда d y.e. Налоговая ставка... http://www.cyberforum.ru/cpp-beginners/thread292818.html
Подскажите где ошибка... C++
Создать класс 2-D координат. Определить операторы "+" и "-" как дружественные функции, а операторы присваивания и сравнения как методы класса. Должны быть возможность осуществления операций, как...
C++ Найти площадь сарая
Фермер хочет построить на своей земле как можно больший по площади сарай. Но на его участке есть деревья и хоз. постройки, которые он не хочет никуда переносить. Для простоты представим форму сеткой...
C++ Сложение дробей. http://www.cyberforum.ru/cpp-beginners/thread292781.html
Я хочу сложить массив дробей. Числитель у меня один массив а знаменательль другой массив. Если бы у меня небыло дробей можно было бы просто написать sum+=a; в цыкле.или sum=sum+a; А тут я незнаю...
C++ Вывести на экран шестнадцатеричное представление натурального числа Всем доброго времени суток. Задание: Вывести на экран шестнадцатеричное представление данного натурального числа. Сама рекурсия не вызывает проблем. Я считаю остаток о деления на 16 и целую... подробнее

Показать сообщение отдельно
CEBEP
106 / 106 / 9
Регистрация: 21.03.2010
Сообщений: 440
11.05.2011, 04:37
это весьма хитрожопый (да помилуют меня модераторы, но иначе не скажешь) код побитного вывода байта. итак по порядку:
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
for( power=7 ; power+1 ; power-- )/*цикл. примечателен тем что итератор power 
будет не увеличивается а уменьшатся пока не станет -1. как только это произойдёт
power+1 станет равно нулю и цикл завершится*/
    if( c >= (1<<power) )
/*вот это наиболее крутое из всего что есть в цикле. Происходит следующее:
берётся цифра 1 и кладётся в 8 бит, получается область памяти содержащая
00000001, далее с помощью операции << эта единица двигается влево по битам
на power. т. е. для каждой итерации цикла на 7, на 6, 5, 4, 3, 2, 1 и 0 бит. получая
таким образом числа 10000000, 01000000 ... 00000001. далее, сие число сравнивается
с исходным(тем самым, содержмиое которого автор скрипта вознамерился побитно
вывести, т. е. переменной c*/
    {
        c -= (1<<power); 
        cout << "1";
/*если эта хитрожопая единица оказалась больше нашего числа мы её из него вычитаем, и выводим 1. Так как
о дальнейшей части алгоритма говорить, в целом, нечего, разъясню произошедшее прямо
здесь. Предположим, мы ввели символ %, имеющее кодовый номер 37, соответствующий в двоичной системе числу 00100101(нули в начале не убираю для наглядности)
цикл сравнивает его сначала с 10000000, потом с 01000000, и ничего не делает
так как эти числа больше чем наше 37, далее приходит время 00100000, оно меньше.
оно вычетается, таким образом от нашего числа остаётся только 00000101, и выводится 1.
Далее, думаю, проще додуматься чем дочитать.
 
 
Короче: это не то что вам нужно. Буквы и так хранятся в двоичном коде, как правило
из 8 байт и хранятся в char (можно почитать в гугле). Если вам нужно преобразование
чисел введённых в виде строки в тип int - для того есть специальные функции.*/
    }
    else
        cout << "0";
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru