Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2009, 17:14   #1
heart
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 64
По умолчанию Ноль Байт, хранение в памяти...

Подскажите пожалуйста, как система хранит ноль байт, например в hex редакторе у меня определенное колличество нулевых байт, от куда система знает, что это ноль байт, какое их колличество, например блокнот же их ни как не видит, разьясните пожалуйста.
heart вне форума Ответить с цитированием
Старый 16.04.2009, 17:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Блокнот просто не приучен видеть коды отличающиеся от кодов-видимых символов. А на самом деле коды достаточно часто в файлах встречаются.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.04.2009, 17:24   #3
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Блокнот вобще слепой в общем то... Он мало что видит и чаще всего встречая нуль-байт, останавливает чтение файла. Система это знает потому что есть еще такая штука как файловый заголовок, ну а если его нет, то такие вещи как размер файла заданы в файловой системе. Дальше стоит почитать спецификации определенной FS, например FAT32 или NTFS.
Вот например файл:
FF 00 F3 07 FF 00 F8
Блокнот прочтет одну единственную букву "я" и остановит чтение. Точно также поступит и любая функция работающая со строками. И это правильно, иначе вместе с вашей строкой было бы считано еще несметное количество байт памяти с "мусором".
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 16.04.2009, 17:26   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Точно также поступит и любая функция работающая со строками
Не любая, а только та которая считает символ с кодом 0 концом строки. Особенно часто такие функции попадаются в языке C++, в Винде и помоему в Линуксе. Но это далеко не все функции.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.04.2009, 18:07   #5
heart
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 64
По умолчанию

Цитата:
Сообщение от Ivan_32 Посмотреть сообщение
Система это знает потому что есть еще такая штука как файловый заголовок, ну а если его нет, то такие вещи как размер файла заданы в файловой системе.
Тоесть ноль байт, грубо говоря можно считать символом, и он тоже занимает место, ведь так?
heart вне форума Ответить с цитированием
Старый 16.04.2009, 18:57   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от heart
Тоесть ноль байт, грубо говоря можно считать символом
так. только формулируете неточно!
Правильнее будет сказать "нулевой байт",
или "байт, имеющий значение ноль."

т.е. один байт занимает ровно один байт независимо от того, какое в нём содержится число - ноль, один, два, или 255...

(p.s. для сравнения... вот Вы цифру "НОЛЬ" знаете?
это цифра или пустое место??? )
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.04.2009, 19:00   #7
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Да именно так. Все "магические" символы, для железа, всего лишь условности заданные конкретной ОС и FS. Это все фон-Неймановская архитектура.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 16.04.2009, 20:09   #8
heart
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 64
По умолчанию

Понял, байт состоит из битов, каждый бит имеет свое состояние, например

11111101

тут у 7 бита состояние 0, а то просто у всех битов состояние ноль

00000000

А состояние само по себе информация...
heart вне форума Ответить с цитированием
Старый 16.04.2009, 23:05   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

heart, отлично. Всё поняли абсолютно верно!


Цитата:
Сообщение от heart
11111101
тут у 7 бита состояние 0, а то просто у всех битов состояние ноль
только, по моему, не 7-й, а 2-й бит (или первый, если нумеровать с нуля) — если мне не изменяет память, биты нумеруются справа налево - от младших разрядов к старшим (ну, и обычно принято нумеровать их с нуля...)
но это всё детали...
Главное Вы уловили правильно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.04.2009, 21:33   #10
heart
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 64
По умолчанию

Я где - то читал, что в байте не 8 бит, а 9, девятый проверка на четность, это так?
heart вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
хранение данных в файле (dc++) AsabeasT Общие вопросы Delphi 2 27.03.2009 11:57
Хранение дисков Levsha100 Свободное общение 24 04.02.2009 15:58
Хранение *.pdf в базе Acess opel.omega БД в Delphi 15 30.12.2008 00:04
Хранение TColor в Access $teelR@t БД в Delphi 2 20.09.2007 13:56
Хранение и шифрование данных Paul Hindenburg БД в Delphi 1 20.08.2007 09:04