Diaskop
|
|
1 | |
Как выглядит нулевой байт?26.01.2012, 13:30. Показов 28631. Ответов 36
Метки нет (Все метки)
Масивы заканчиваются нулевым байтом "/0", это ясно - надо иметь признак конца, но ("/")= 0x2F и ("0")=0x30 , а это уже два байта.
Вопросы: 1. под "нулевым байтом" подразумевают два байта ? 2. если прочитать конец массива, увижу я 0x2F и 0x30? |
26.01.2012, 13:30 | |
Ответы с готовыми решениями:
36
strstream (Как записать теперь в s нулевой байт 0, чтобы он не интерпретировался с частью строки?) Конвертирование String в HEX теряется нулевой байт Нулевой байт нулевой байт ! |
13 / 13 / 0
Регистрация: 31.12.2011
Сообщений: 83
|
|
26.01.2012, 13:42 | 3 |
Массивы (обычные) ничем не заканчиваются. Массив символов с '\0' (именно одинарные) - строка в стиле C. А \ - спец. символ по-моему.
0
|
78 / 78 / 9
Регистрация: 26.12.2011
Сообщений: 217
|
|
26.01.2012, 13:54 | 5 |
Да, это спец. символ.
Тем самым мы даем знать, что это не очередной символ, а уже конец файла. Как-то не задавался этим вопросом, но думаю, что в конце будет стоять 0x30.
0
|
6 / 6 / 1
Регистрация: 01.12.2010
Сообщений: 105
|
||||||
26.01.2012, 13:58 | 8 | |||||
для раздумий лучше:
0
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|
26.01.2012, 13:58 | 9 |
0
|
0 / 0 / 0
Регистрация: 08.10.2010
Сообщений: 134
|
|
26.01.2012, 14:00 | 10 |
Массив не чем не кончается. Это char кончается нулевым байтом, но можно прочитать и следующие, зная его номер. Пример:
Массив 0x11 0x77 0xff 0x00 0x2f 0x90 sizeof выдаст при этом 2. Но можно прочитать 0x90 с помощью [6] или 0x2f [5] Нулевой байт - 0x00
0
|
78 / 78 / 9
Регистрация: 26.12.2011
Сообщений: 217
|
|
26.01.2012, 14:05 | 12 |
Я, вообще-то, имел ввиду, что нуль + '\' даст такой результат.
При чтении строки такого вида "123\0567" мы получим 123 - "остальное", т.е. то, что за '\0', считается мусором. А где здесь нуль-символ? Читайте меня внимательнее, я имел ввиду комбинацию, а не один слеш. Придирка неудачна, я прав. Добавлено через 1 минуту То есть то, что за слешем - уже не просто цифра ноль. Как-то так в общем.
0
|
78 / 78 / 9
Регистрация: 26.12.2011
Сообщений: 217
|
|
26.01.2012, 14:08 | 14 |
Типичный пример того, как функция sizeof откидывает "мусор".
Так и любые другие функции при чтении массива ищут нуль-символ.
0
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|
26.01.2012, 14:11 | 15 |
zelim,
речь про 0 вообще не шла. Шла речь об '\'
Я Вам привел пример, что Вы в корне не правы... А если так? http://liveworkspace.org/code/... 0dc7cc52dc Этот оператор возвращает размер выделенной памяти памяти... Почитали бы лучше что-нибудь.
0
|
78 / 78 / 9
Регистрация: 26.12.2011
Сообщений: 217
|
|
26.01.2012, 14:11 | 16 |
Это уже своего рода предположение было Я же уточнил, что этим не интересовался и в подробности не вникал ))
Не подумал даже как-то над примером.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
26.01.2012, 14:12 | 17 |
Во-первых не "/", а "\", а во вторых это просто спецсимвол, терминальный байт действительно нулевой, то есть 0x00.
0
|
26.01.2012, 14:12 | 18 | |||||
Не, пример корявый был в #15
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
26.01.2012, 14:15 | 19 |
Нет. Если без слеша, то было бы 0x30, но слеш даже среди спецсимволов особый, он включает режим спецсимола для следующего и его код меняется. Например, t получает код 0x08, а но - код 0x00.
0
|
26.01.2012, 14:15 | 20 |
0
|
26.01.2012, 14:15 | |
26.01.2012, 14:15 | |
Помогаю со студенческими работами здесь
20
Если команда состоит из двух байт, то как прописать каждый байт отдельно? Как заставить программу принимать цепочку байт из оперативной памяти, в виде массива байт ? Как вывести 10 байт после определенных байт из файла Как написать на masm под х86 функцию поиска кол-ва вхождений последовательности байт в большом массиве байт? Как использовать функцию, выдающую через переменную типа байт результат, объём которого больше, чем байт? А можно сделать так (разбить как нибудь или запятые вставить ), чтобы было не 8998989 байт, а 8,998,989 байт ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |