![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| reCoder |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.9.2006 Репутация: нет Всего: нет |
Здраствуйте.
Очень интересует следующий вопрос. В двоичном виде можно представить числа от 0 до 255. Рассмотрим внутринности EXE файла. Неужели там символы только из такого диапазона ? Результат выполнения след. кода удевил, т.к. на екране увидел отрицательные числа и нули.
Поясните пожалуйста |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Не совсем так. Это количество различных значений в одном байте, т.е. 2^8. Если взять допустим 2 байта и сказать, что они обозначают одно число, то получается 2^16, что уже больше 65 тысяч. И так далее.
Ты читаешь по одному чару (1 байт), а выводишь на консоль преобразуя в int, котрый является знаковым целым из 4х байт (на 32х битной системе конечно) |
|||
|
||||
| reCoder |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.9.2006 Репутация: нет Всего: нет |
Немного ушли от вопроса.
Тоесть системы произвольно могут ставить символ не по одному байту, а по нескольким ? Тоесть символов в ЕХЕ конечно больше чем 256 ? Добавлено @ 20:46
Как тогда узнать номер этого символа, чтобы потом в двоичный вид ? Это сообщение отредактировал(а) reCoder - 5.10.2006, 20:43 |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
старший бит в char - знаковый
при преобразовании в int просходит заполнение битов старших 3-х байтов знаковым битом младшего байта а так как int - тоже знаковый - оттого и отрицательные числа Это сообщение отредактировал(а) MAKCim - 5.10.2006, 21:40 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| reCoder |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.9.2006 Репутация: нет Всего: нет |
спасибо. понял
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |