Иногда, когда вы загружаете скомпилированный двоичный файл с неправильным типом mime или, например, запускаете команду «больше» в двоичном файле, вы получаете кучу «ужасного gook» из-за отсутствия лучшего термина.Что такое текстовое представление двоичных данных?
Например, это фрагмент того, что я вижу, когда я бегу «больше» из командной строки на очень простую программу, C, скомпилированный с GCC на OS X.
<94>^^^@^@ESC^@^@^@^^^A^@^@<A8>^^^@^@.^@^@^@^N^D^@^@^P ^@^@@^@^@^@^O^D^@^@^L ^@^@H^@^@^@^O^D^@^@^H ^@^@P^@^@^@^O
^D^@^@^@ ^@^@\^@^@^@^C^@^P^@^@^P^@^@p^@^@^@^O^A^@^@b^_^@^@y^@^@^@^O^D^@^@^D ^@^@<82>^@^@^@^O^A^@^@<B6>^^^@^@<88>
^@^@^@^O^A^@^@T^_^@^@<8D>^@^@^@^O^A^@^@T^^^@^@<93>^@^@^@^A^@^A^B^@^@^@^@<99>^@^@^@^A^@^A^B^@^@^@^@^L^@^@^@^M^@^@
^@ ^@dyld_stub_binding_helper^@__dyld_func_lookup^@dyld__mach_header^@_NXArgc^@_NXArgv^@___progname^@__mh_execute
_header^@_average^@_environ^@_main^@_sum^@start^@_exit^@_printf^@^@^@^@
Может кто-то объяснить в простых терминах том, почему это? Что происходит, когда текстовый редактор или тип mime plain text пытается интерпретировать двоичные данные? Значит ли^@ что-нибудь в этом контексте? Почему есть какой-то текст и какой-то странный гук? Есть ли какой-либо стандарт для того, как эти двоичные данные представлены в тексте? Почему это не просто 1 и 0s?
Я могу концептуально понять ascii или unicode как представление символов в числовой системе, которая может быть уменьшена до двоичных 1 и 0 и числовой системы, которую понимает ЦП. Но на более высоком уровне я пытаюсь понять, что такое двоичные данные. Думаю, я хочу «увидеть абстракцию», если это имеет смысл.
Есть ли способ «видеть» двоичные данные каким-либо значимым образом в текстовом редакторе?
Спасибо всем, кто откликнулся. Просто из любопытства, что означают угловые скобки в приведенном выше фрагменте? например <8D><93><99><8D><93><99> –