Здравствуйте!
let buff = Buffer.from('A');
console.log('A'.charCodeAt( 0 )); // 65
console.log(buff); // <Buffer 41>
console.log(buff.length); // 1
В данном случае вроде всё понятно, создаём буфер, в него передаём букву " А ", её код из таблицы кодировок 65, в 16-тиричной системе счисления получается 41 (на сколько мне известно для отображения используется именно 16тирич. с.с.), ну а при передачи этой буквы " А " допустим при чтении файла или записи на самом деле передаётся код в двоичной с.с., который (если мне не изменяет конвертер) равен " 1000001 ".
Вопрос 1 : правильно ли мною описан просиходящее выше?
Вопрос 2 : 41 это двоичное представление байта (извиняюсь за карявую интерпритацию), который по идее состоит из 8 бит так ведь? Т.е. если 41(16тирич.) === 1000001(2ичн.) , то бит не хватает, и они дописываются в начало, т.е. при передаче это будет 01000001, т.е. +1 нолик (0) в начале ?
let buff = Buffer.from('№');
console.log('№'.charCodeAt( 0 )); // 8470
console.log(buff); // <Buffer e2 84 96>
console.log(buff.length); // 3
Тут вообще мрак, как происходит заполнение этих "октетов" , они считаются по отдельности? Т.е. если переводить в ручную то это будет выглядеть так ?. . .
e2(16тирич.) === 11100010
84(16тирич.) === 10000100
96(16тирич.) === 10010110
Или нет? Просьба либо объяснить в чем мои ошибки, или где я всё таки прав, или ответить на вопросы с пояснениями, т.к. столкнулся с такой проблемой, что все объясняют повсюду, что в буфере есть байты, и они хранят коды символов, и приводят пару талых примеров с какойнибудь строкой "hello", что мол типо каждый байт это двоичное представление буквы, му, а как это всё переводится никто не упоминает, либо я просто не нашёл, в первые в жизни я бы даже был доволен качественной ссылкой на статью, в которой бы была расписана эта подноготная, т.к. я даже не знаю что искать, как называется этот процесс перевода в контексте объекта
buffer
! Спасибо!