![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| observateur |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 10.6.2006 Репутация: нет Всего: нет |
Помогите мне пожалуйста у меня одна программа которая я должен сделать кое-какие упражнении над нем. Я тщательно рассматривал программу. Мне трудно понять эту фразу что это означает ?
почему здесь минус? заранее спасибо |
||||
|
|||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Потому что 0 и '0' это две разных вещи первое - число, а второе - буква.
Вот например кодировка. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Видим, что: на нулевой позиции стоит '!', на первой - " итд. Получается: 0='!', 1='"', 2='#',.... '0'=16,'1'=17 итд. Поэтому с буквами возможны арифметические операции типа: '0'+1='1', 'G'+1='H', а '9'+1=':' '0'+8='8' следовательно '8'-'0' =8 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
на самом деле, восклицательный знак имеет код 0x21 (33), а '0' - 0x30 (48).
|
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 11 Всего: 61 |
Самое главное то, что цифры в кодировочной таблице идут в непрерывном массиве, т.е. последовательно. В частности, в ASCII (да и в ANSI) коды цифр (а это символы (!) '0' .. '9') начинаются с позиции, равной 48.
Поэтому, чтобы получить значение (!) из кода, необходимо из кода цифры вычесть номер ее позиции в таблице. Т.е. если у нуля код - 48, то вычитая 48, и получим 0. Аналогично для других цифр. Но в целях переносимости и назависимости от реализации (ведь совсем не обязательно, что дядькам (а может и тетькам) с IBM не захочется сделать так, чтобы коды цифр начинались с других позиций) Вычитая из кода цифры '0', ты об этом не задумываешься (вычитается именно то, что нужно) Это правило хорошего тона, аналогичное тому, что нужно использовать sizeof и константу EOF (а не явно -1) -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |