Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Узнать код символа 
:(
    Опции темы
rthsobakas
Дата 6.4.2009, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



как узнать код символа по АСКИИ в билдере?

То есть код у Э буквы 157!!!

int ff=(char)"Э";  покажет что у Э  код 77!!! как так?
int ff=(char)"8"; а у этого 79!!! когда между 8 и Э по аскии разница  157-56=101 а не как не 2


Что такое?
PM   Вверх
Rififi
Дата 6.4.2009, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 1
Всего: 36



"Э" - это строковой литерал.
Говоря в терминах C/C++ - это указатель на область память, где содержатся значения 'Э', '\0'
ты этот адрес приводишь к типу char, то есть берешь от него последний байт.

правильно надо так:
int ff = 'Э';

приводить к char нельзя, т.к. русские символы имеют код > 127 и тогда возникнет переполнение знака.
PM MAIL   Вверх
mes
Дата 6.4.2009, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 6
Всего: 250



Цитата(Rififi @  6.4.2009,  18:45 Найти цитируемый пост)
приводить к char нельзя, т.к. русские символы имеют код > 127 и тогда возникнет переполнение знака. 

нельзя ли тут пояснения, о чем речь ?

Код

signed char  ff = 'Э'; // так делать нельзя ?!

или я неправильно понял цитату...

Это сообщение отредактировал(а) mes - 6.4.2009, 19:51


--------------------
PM MAIL WWW   Вверх
rthsobakas
Дата 6.4.2009, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Rififi, если так int ff = 'Б';
то ff будет равен  -63 а должен быть 129!!!
Может есть отдельные ф-ии такие как в бэсике ASC CHR???

Добавлено через 3 минуты и 40 секунд
если так написать

unsigned char a;
a = 'п';
 int cod = (int)a;

то код  буквы п будет 239 равен что  неверно!!

Добавлено через 5 минут
я возмущен
PM   Вверх
Rififi
Дата 6.4.2009, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 1
Всего: 36



mes
поскольку [signed] char вмещает диапазон чисел -128 .. 127, то этого недостаточно, чтобы корректно представить верхнюю половину ascii-таблицы - коды этих символов получатся отрицательными, что лишено всякого смысла.

Добавлено через 3 минуты и 9 секунд
rthsobakas
Rififi, если так int ff = 'Б';
то ff будет равен  -63 а должен быть 129!!!


всё правильно. ты знаковый char приводишь к знаковому int.
поскольку число 'Б' (а для Си символ и его код - это одно и то же) отрицательное, то происходит расширение знака

Добавлено через 7 минут и 7 секунд
rthsobakas
то код  буквы п будет 239 равен что  неверно!!
кто сказал что неверно?
вот например microsoft считает что верно, а всех несогласных посылает в пешее эротическое :gigi:
PM MAIL   Вверх
rthsobakas
Дата 6.4.2009, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Rififi
если так написать

unsigned char a;
a = 'я';
unsigned int cod = (unsigned int)a;

то код  буквы я будет 255 равен что  неверно!!

Добавлено через 6 минут и 34 секунды
у буквы я код 239 в аскии

Добавлено через 7 минут и 21 секунду
я не понимаю билдер переделал что ли аскии

Это сообщение отредактировал(а) rthsobakas - 6.4.2009, 20:12
PM   Вверх
Rififi
Дата 6.4.2009, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 1
Всего: 36



rthsobakas
то код  буквы я будет 255 равен что  неверно!!
да спасибо, это я и в первом сообщении прочитал.
ишшо раз - кто тебе сказал что это неверно? 
дай ему в морду, ибо этот чел походу не только не знает, что существуют разные кодировки, но и тебя запутал. :gigi:

PM MAIL   Вверх
mes
Дата 6.4.2009, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 6
Всего: 250



Цитата(rthsobakas @  6.4.2009,  19:12 Найти цитируемый пост)
то код  буквы я будет 255 равен что  неверно!!
у буквы я код 239 в аскии


откройте для себя таблицу символов :
  пуск/все программы/стандартные/служебные/таблица символов
 и убедитесь что все правильно smile  для той кодировки которую используете.
В кодировке Dos (и других) русские символы будут представлены иначе smile 

В общем что написали, то и получили smile


Это сообщение отредактировал(а) mes - 6.4.2009, 20:27


--------------------
PM MAIL WWW   Вверх
rthsobakas
Дата 6.4.2009, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Rififi, попов в. б. сказал!  
школьная книга осталась про турбо паскаль. Страница 482. ща в инете найду или фотку кину
PM   Вверх
mes
Дата 6.4.2009, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 6
Всего: 250



Цитата(Rififi @  6.4.2009,  19:02 Найти цитируемый пост)
поскольку [signed] char вмещает диапазон чисел -128 .. 127, то этого недостаточно, чтобы корректно представить верхнюю половину ascii-таблицы - коды этих символов получатся отрицательными, что лишено всякого смысла.

особенно учитывая, что ряд компиляторов  (в частности gcc) рассматривают char как signed char smile
просто для операций семантически отличных от операций_над_символоми необходимо делать правильное преобразование 
smile

Это сообщение отредактировал(а) mes - 6.4.2009, 20:46


--------------------
PM MAIL WWW   Вверх
rthsobakas
Дата 6.4.2009, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



вот смотрите

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  P4060001.JPG 401,29 Kb
PM   Вверх
rthsobakas
Дата 6.4.2009, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



ну че? нормально , да?))))

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  P4060001.JPG 401,29 Kb
PM   Вверх
mes
Дата 6.4.2009, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 6
Всего: 250



Цитата(rthsobakas @  6.4.2009,  19:34 Найти цитируемый пост)
ну че? нормально , да?))))

Вы читать умеете ?  smile 

Цитата(mes @  6.4.2009,  19:23 Найти цитируемый пост)
 и убедитесь что все правильно smile  для той кодировки которую используете.
В кодировке Dos (и других) русские символы будут представлены иначе smile 


Вы исходник в какой кодировке печаете ? Вот ту кодировку и смотрите. А если хотите получить от 'я' 239 , то пишите в досовской кодировке.
Это можно сделать например в блокноте smile Хотя может и Борланд позволяет задать кодировку.. смотрите настройки проекта. 

Это сообщение отредактировал(а) mes - 6.4.2009, 20:46


--------------------
PM MAIL WWW   Вверх
rthsobakas
Дата 6.4.2009, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



 mes, так сразу бы и сказали. А то я тут чуть сума не сошел smile    smile 
PM   Вверх
mes
Дата 6.4.2009, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 6
Всего: 250



Цитата(rthsobakas @  6.4.2009,  19:50 Найти цитируемый пост)
mes, так сразу бы и сказали. А то я тут чуть с ума не сошел smile    smile  

так я и сказал сразу : http://forum.vingrad.ru/index.php?showtopi...t&p=1835264  smile 
 smile 



--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1336 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.