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

Как получить int представление char (русские символ cp1251)? - C++

Восстановить пароль Регистрация
 
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
09.07.2013, 16:19     Как получить int представление char (русские символ cp1251)? #1
Как получить int представление char (русские символ cp1251)?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 16:23     Как получить int представление char (русские символ cp1251)? #2
C++
1
2
unsigned char ch = 'Ф';
cout << (int)(ch) << endl;
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
09.07.2013, 16:24     Как получить int представление char (русские символ cp1251)? #3
C++
1
2
char ch='k';
cout<<(int)ch;
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
09.07.2013, 16:25  [ТС]     Как получить int представление char (русские символ cp1251)? #4
C++
1
2
char ch = 'б';
std::cout << std::hex << (unsigned int)(ch);  // ffffffe1
duhast_vladisla
Заблокирован
09.07.2013, 16:28     Как получить int представление char (русские символ cp1251)? #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <iomanip>
 
int main()
{
    char *str  = "Привет";
    char *p = str;
 
    while (*p)
    {
        std::cout << std::setbase(16);
        std::cout << (int)*p++ << '\n';
    }
 
    return 0;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 16:35     Как получить int представление char (русские символ cp1251)? #6
Цитата Сообщение от vdvoid Посмотреть сообщение
C++
1
2
char ch = 'б';
std::cout << std::hex << (unsigned int)(ch);  // ffffffe1
Исправил. Или так:
C++
1
2
char ch = 'Ф';
cout << (int)(unsigned char)(ch) << endl;
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
09.07.2013, 16:38  [ТС]     Как получить int представление char (русские символ cp1251)? #7
имею ввиду в старшие байты 1111 добавляются при приведении в int, наверно так надо делать?
C++
1
2
char a = 'б';
std::cout << std::hex << ((unsigned short)a & 0xff)  << '\n';
а нет другого способа?

к unsigned char приведение вначале помогло избавиться от 1111
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 16:50     Как получить int представление char (русские символ cp1251)? #8
Цитата Сообщение от vdvoid Посмотреть сообщение
имею ввиду в старшие байты 1111 добавляются при приведении в int, наверно так надо делать?
C++
1
2
char a = 'б';
std::cout << std::hex << ((unsigned short)a & 0xff)  << '\n';
а нет другого способа?

к unsigned char приведение вначале помогло избавиться от 1111
Не пойму о чём речь... Не тот код получается? Или что?
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
09.07.2013, 16:53  [ТС]     Как получить int представление char (русские символ cp1251)? #9
нужно получить e1 (225 - код 'б' cp1251)

C++
1
2
char a = 'б';
std::cout << std::hex << (unsigned short)a  << '\n';
вывод ffe1

C++
1
2
char a = 'б';
std::cout << std::hex << ((unsigned short)a & 0xff)  << '\n';
вывод e1

C++
1
2
char a = 'б';
std::cout << std::hex << (unsigned short)(unsigned char)a  << '\n';
вывод e1
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 16:58     Как получить int представление char (русские символ cp1251)? #10
Так не работает?
C++
1
2
char a = 'б';
std::cout << std::hex << (int)(unsigned char)a  << '\n';
К unsigned char приводить нужно. Вопрос в чём?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2013, 16:59     Как получить int представление char (русские символ cp1251)?
Еще ссылки по теме:

C++ Как в выделенную память записать поочередно число int, массив char[n], и еще число int
C++ Как преобразовать int в char
Получить int из char C++

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

Или воспользуйтесь поиском по форуму:
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
09.07.2013, 16:59  [ТС]     Как получить int представление char (русские символ cp1251)? #11
уже не в чем, unsigned char помог, спасибо
Yandex
Объявления
09.07.2013, 16:59     Как получить int представление char (русские символ cp1251)?
Ответ Создать тему
Опции темы

Текущее время: 05:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru