01.12.2011, 03:05
общий
это ответ
Здравствуйте, Заречнева Вера Михайловна!
1. Будут последовательно записаны числа 1, 10, 100. После каждого пара 0x0d, 0x0a (возврат строки). Итого: 3+4+5 = 12 байт
2. a = "e2e3", n = 4 (после второго копирования строка усечется до 4 символов, третье копирует за нулем)
3. a = "fgh", n = 3 (сначала копируем последние 3 байта, последующее копирование происходит за нулем)
4. a = "e2e4", n = 4 (второе копирование за нулем, поэтому строка не меняется)
5. n = 20e16 = 526 (фрагмент преобразовывает hex-строку в hex-число)
6. n = 37508 = 7e816 = 2024 (фрагмент неправильно(!) преобразовывает восьмиричное число-строку в число.
По идее, задумывалось преобразовывать либо до конца строки, либо до первого символа-не цифры 0-7 (символ 'e')
Неправильность в том, что умножать на 8 надо не до проверки на восьмиричную цифру, а после.
7. n = 11b16 = 283 (фрагмент преобразовывает, как и пример 5, hex-строку в hex-число)
Оба примера 5 и 7 имеют ту же некорректность, что и №6!
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен