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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
#1

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

09.07.2013, 16:19. Просмотров 948. Ответов 10
Метки нет (Все метки)

Как получить int представление char (русские символ cp1251)?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2013, 16:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как получить int представление char (русские символ cp1251)? (C++):

Как превести из char* в int и наоборот из int в char*? - C++
Как превести из char* aa='123' в int aa=123 и наоборот из int в char* . Понимаю что самому написать функцию не сложно, но наверняка это...

Реализация функции char *padl(const char *string, int len, int c=' ') - C++
Реализовать функцию возвращающую указатель на новую строку длины len, полученную из string либо удалением лишних символов слева , либо...

Получить int из char - C++
Здравствуйте. Пишу программу в Visual Studio 2008. Проект Win32. Подскажите, имеется unsigned char p = {0x20, 0x00, 0xA3, 0x45, 0x89, 0x41...

Форматирование строк, char to int & int to char - C++
Покажите как запихнуть число в строку и вытащить его обратно из строки. Вот всё просто в pawn str_to_num(const str) // Тупо...

Как в выделенную память записать поочередно число int, массив char[n], и еще число int - C++
Выделяю память void* Start=malloc(Size); Как туда записать поочередно число int, массив char, и еще число int?

error LNK2019: ссылка на неразрешенный внешний символ "public: int __thiscall KDocument::Open(char const *)" в функции _WinMain@16 - C++
ребята, при компиляции линковщик ругается, подскажите пожалуйста , вроде бы и Kdocument.h импортирован, не знаю в чем дело// HexBeta.cpp :...

10
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 16:23 #2
C++
1
2
unsigned char ch = 'Ф';
cout << (int)(ch) << endl;
1
Valentina
69 / 69 / 3
Регистрация: 13.05.2012
Сообщений: 130
09.07.2013, 16:24 #3
C++
1
2
char ch='k';
cout<<(int)ch;
0
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
09.07.2013, 16:25  [ТС] #4
C++
1
2
char ch = 'б';
std::cout << std::hex << (unsigned int)(ch);  // ffffffe1
0
duhast_vladisla
Заблокирован
09.07.2013, 16:28 #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;
}
0
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 16:35 #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;
1
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
09.07.2013, 16:38  [ТС] #7
имею ввиду в старшие байты 1111 добавляются при приведении в int, наверно так надо делать?
C++
1
2
char a = 'б';
std::cout << std::hex << ((unsigned short)a & 0xff)  << '\n';
а нет другого способа?

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

к unsigned char приведение вначале помогло избавиться от 1111
Не пойму о чём речь... Не тот код получается? Или что?
0
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
09.07.2013, 16:53  [ТС] #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
0
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 16:58 #10
Так не работает?
C++
1
2
char a = 'б';
std::cout << std::hex << (int)(unsigned char)a  << '\n';
К unsigned char приводить нужно. Вопрос в чём?
0
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
09.07.2013, 16:59  [ТС] #11
уже не в чем, unsigned char помог, спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2013, 16:59
Привет! Вот еще темы с ответами:

Подскажите пожалуйста с int main(int argc, char*argv[]) - C++
Если я правильно понимаю, то int argc это передача аргумента программе, т. е если argc&gt;1 то программе передан хотя бы один аргумент, если...

Как преобразовать int в char - C++
Подскажите пожалуйста как преобразовать int в char Есть код к примеру: #include&lt;iostream&gt; using namespace std; int main(){ ...

Как перевести из char в int? - C++
нужно присвоить значение массива char A в int B, например B=A, но выбивает ошибку, пробовал B=atoi(&amp;A); но выбивает другое число

Как преобразовать int в char? - C++
Прошу подсказать, как же все-таки преобразовывать int в char?


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

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

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