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

Как определить двоичный код символа. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поясните ,что такое граф http://www.cyberforum.ru/cpp-beginners/thread313099.html
Поясните ,что такое граф.Можете,пожалуйста,привести пример программы задания графа и пары элементарных обработок?Или дать ссылку на соответствующую литературу,очень надо.
C++ Бинарное дерево Здравствуйте! Мне нужно было построить произвольное бинарное дерево, считав значения его узлов с файла. Осуществить обход дерева с корня к его листьям ы напечатать значения его узлов за префиксной,постфиксной и инфиксной формами. Вот код: #include<iostream> #include<string.h> #include<conio.h> #include<windows.h> #include<time.h> using namespace std; struct node { ... http://www.cyberforum.ru/cpp-beginners/thread313081.html
Сума цифр веденного числа N C++
c++ Напишите программу ( по-моему с помощью цикла for)? которая подсчитывает сумму цифр введенного числа N и блок-схему к ней.. помогите пожалуйста решить, очень срочно надо
C++ Дана строка S, состоящая из 10 цифр, и файл с русским текстом. За-шифровать файл, выполнив циклическую замену каждой русской буквы, стоящей на K-й поз
Дана строка S, состоящая из 10 цифр, и файл с русским текстом. За-шифровать файл, выполнив циклическую замену каждой русской буквы, стоящей на K-й позиции строки, на букву того же регистра, расположен-ную в алфавите на SK-м месте после шифруемой буквы (для K = 11 снова используется смещение S1 и т. д.). Букву «ё» в алфавите не учитывать, зна-ки препинания и пробелы не изменять
C++ Линейный список. Язык С. http://www.cyberforum.ru/cpp-beginners/thread313064.html
Здравствуйте. Помогите пожалуйста доделать программу. Условие. Картинная выставка организована в виде линейного списка. Каждая компонента указателя содержит названия картин и имя автора. Написать программу, которая обеспечивает: 1)Начальное формирование выставки. 2) Вывод всей выставки. 3)Вывод всех картин данного автора. 4)Вывод всех авторов выставки. 1) и 2) пункты я сделала. Проблема...
C++ не могу решить процедуру на языке С++ Param26. Описать процедуру RemoveRows(A, M, N, K1, K2), удаляющую из ве-щественной матрицы A размера M × N строки с номерами от K1 до K2 включительно (предполагается, что 1 < K1 ≤ K2). Если K1 > M, то матрица не изменяется; если K2 > M, то удаляются строки матрицы с номерами от K1 до M. Двумерный массив A и числа M, N являются входными и выход-ными параметрами. Используя процедуру RemoveRows,... подробнее

Показать сообщение отдельно
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
05.06.2011, 08:41     Как определить двоичный код символа.
Цитата Сообщение от %binary% Посмотреть сообщение
Как определить двоичный код символа?
Если символа (т.е. char, занимающего 1 байт), то как я понимаю, можно работать на битовом уровне? Вот как я бы сделал (без претензии на правильность или идеальность кода))):

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
#include <iostream>
 
int charToBinary(unsigned char val)
{
    int binary = 0;
    
    for (int i = 7; i >= 0; --i)
    {
        binary *= 10;
        
        if (val & (1 << i))
            binary += 1;
    }
    
    return binary;
}       
    
int main()
{
    unsigned char a;
    std::cout << "enter symbol: ";
    std::cin >> a;
    std::cout << "binary: " << charToBinary(a) << '\n';
    
    return 0;
}
С поразрядными операциями у меня пока туговато, но я могу объяснить работу функции так:

1 << i - побитовый сдвиг 1 на i позиций, например: 1 << 0 = 00000001; 1 << 1 = 00000010; 1 << 2 = 00000100 итд

& - поразраядная конъюнкция - в результат заносится 1, когда оба сравниваемых бита == 1, иначе - 0, например: 11101101 & 01000001 = 01000001 (true), a 10101101 & 01000010 = 00000000 (false)

Таким образом просматриваем каждый бит val на равество его 1, и в случае успеха добавляем 1 в результат.

Если я в чём-то ошибся или что-то усложнил, буду рад совету знающих людей))
 
Текущее время: 17:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru