![]() |
|
Модераторы: bsa |
![]()
|
|
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Всем привет, у меня вопрос:
Допустим мы записываем в переменную dwBuf[0] число 10, если посмотреть в hex, то в это значение занимает всего один байт в памяти, второй байт 00. Правильно Я понимаю, что если бы число было намного больше, то оно занимало бы уже больше места? А так получается, что второй байт этой переменной используется "вхолостую" Это сообщение отредактировал(а) yngwie19 - 14.2.2009, 19:16 |
|||
|
||||
| Kallikanzarid |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
Ну да, в short-е под число отведено 16 бит, число 10 занимает четыре. Эрго, остальные - незначащие нули.
|
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Kallikanzarid, понятно. Тогда такой пример:
Допустим есть массив nBuf[10], заполненный числами от 1 до 10, далее в файл 1.dat записываются значения этого массива после чего из этого файла данные считываются в массив dwTemp. 2 Вопроса по поводу этих действий: 1 Вопроc: при записи в файл, функция WriteFile записывает только байты со значениями или все подряд (включая 00) ? 2 Вопрос: при считывании из этого файла, функция ReadFile берет по 2 байта в каждый элемент массива nBuf ? |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
да, число в short (а также char/int/double/..) всегда занимает место равное sizeof (short) (char/int/double/..) соответственно, независмо от самого значения.
То есть для вашего случая : пишется/читается не значение, а все биты числа типа short. P.S. только вот непонятно почму Вы 50 short'ов в примере записываете, хотя имеете только 10.. Это сообщение отредактировал(а) mes - 14.2.2009, 21:44 |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
mes, а ну это опечатка. Спасибо за ответ.
|
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
mes, скажи пожалйста.
1) При попытке открыть сформировавшийся файл 1.dat через блокнот, Я вижу лишь набор каких-то символов. Это принципиальная специфика записи по байтам в файл информации? как можно посмотреть какие значения находятся в данном файле? 2) Можно ли при создании нового файла использовать другое расширение отличное от dat и есть ли разница при использовании этого расширения и другого ? |
|||
|
||||
| cutwater |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 2 Всего: 10 |
Если не против, отвечу я.
1) Блокнот открывает файл в текстовом режиме, при чем есть символы которые он не отображает, при чем открывает по всей видимости еще и в определенной кодировке ( у Вас же в файле не текст по сути а двоичные данные). Посмотреть можно при помощи любого hex-редактора или far или lister в тотал коммандере или etc. 2) не влияет расширение файла никак. Назовите хоть exe, хоть avi. Разницы в зависимости от расширения нет. |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
какой смысл программировать если не понимать таких основ %)
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
если разберетесь с этим не сложным примером :
и поймете как получается то, что видите на экране и откуда берется звук, то думаю без труда сами ответите на все Ваши вопросы этой темы. П.С. обратите особое внимание на 7,8,9,10,13 Это сообщение отредактировал(а) mes - 15.2.2009, 01:46 |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
||||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
А как же, а вообще прочитать тут Системы_счисления -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Dem_max, а в far-е можно сразу в dec посмотреть?
|
|||
|
||||
| cutwater |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 2 Всего: 10 |
В фаре не помню уже ибо им не пользуюсь при просмотре файла нужно нажать кнопку F4, там же так и подписано HEX
Или вам другое нужно? Добавлено через 1 минуту и 8 секунд И что значит в dec посмотреть? в десятичной с-ме счисления обычно такие программы не отображают данные, может быть есть такое в WinHex но не уверен. |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
cutwater, спасибо за ответ
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |