Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Aliksan
6 / 6 / 3
Регистрация: 22.09.2015
Сообщений: 142
#1

Перевести десятичное число в unicode

12.10.2016, 23:46. Просмотров 337. Ответов 3
Метки нет (Все метки)

Есть программа, вводим десятичное число до 10 000 и отображает символ. Однако, когда ввожу, например 800 - пусто, 801 тоже ничего. С 880 она отображает символ. Может, ошибка очевидна..?
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
#include <iostream>
using namespace std;
 
void getUnicode(unsigned int code, char (&chars)[5]) {
    if (code <= 0x7F) {
        chars[0] = (code & 0x7F); chars[1] = '\0';
    } else if (code <= 0x7FF) {
        // one continuation byte
        chars[1] = 0x80 | (code & 0x3F); code = (code >> 6);
        chars[0] = 0xC0 | (code & 0x1F); chars[2] = '\0';
    } else if (code <= 0xFFFF) {
        // two continuation bytes
        chars[2] = 0x80 | (code & 0x3F); code = (code >> 6);
        chars[1] = 0x80 | (code & 0x3F); code = (code >> 6);
        chars[0] = 0xE0 | (code & 0xF); chars[3] = '\0';
    } else if (code <= 0x10FFFF) {
        // three continuation bytes
        chars[3] = 0x80 | (code & 0x3F); code = (code >> 6);
        chars[2] = 0x80 | (code & 0x3F); code = (code >> 6);
        chars[1] = 0x80 | (code & 0x3F); code = (code >> 6);
        chars[0] = 0xF0 | (code & 0x7); chars[4] = '\0';
    } else {
        // unicode replacement character
        chars[2] = 0xEF; chars[1] = 0xBF; chars[0] = 0xBD;
        chars[3] = '\0';
    }
}
 
int main() {
    unsigned int a;
    char s[5];
    cin >> a;
    getUnicode(a, s);
    cout << s << endl;
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2016, 23:46
Ответы с готовыми решениями:

Требуется двоично-десятичное число перевести в десятичное
Помогите пожалуйста реализовать

Перевести двоичное число в десятичное
у меня есть например ASCII код в двоичной системе какого то символа. как...

Двоичное число перевести в десятичное
Введите целое число в двоичной системе счисления и выведите его десятичный...

Как перевести десятичное число в двоичную
Зравствуйте, значит проблема у меня такая 1.Есть у меня число представленная в...

Перевести заданное десятичное число в 2-ю, 8-ю, 16-ю, двоично-десятичную системы и обратно
Перевести заданное десятичное число в 2-ю, 8-ю, 16-ю, двоично-десятичную...

3
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
13.10.2016, 13:21 #2
Это преобразование utf32 в utf8? А консоль поддерживает такой формат?
0
Aliksan
6 / 6 / 3
Регистрация: 22.09.2015
Сообщений: 142
13.10.2016, 14:50  [ТС] #3
Нет, это перевод числа в utf-8 (просто вводим число от 1 до 10000). Программа работает правильно, при вводе 800 или 801 ничего и не должно отображаться! НЕХ код (в другой программе) отображается верно (на основе этой функции).
Тему можно закрыть.
В Linux это работает (терминал).
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
13.10.2016, 17:18 #4
Что значит перевод числа? utf32 - и есть число (код).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2016, 17:18

Перевести произвольное десятичное число типа char в двоичную систему счисления
Здравствуйте, уважаемые программисты! У меня скоро сессия, а долги не сданы до...

Перевести натуральное десятичное число в двоичною систему с помощью побитовых операций
помогите пожалуйста написать программу которая переведет натуральное число в...

Перевести Unicode строку в ANSI
char label_ansi; wchar_t label_wide; sprintf_s (label_ansi, &quot;%ls&quot;,...


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

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

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