Задать вопрос
@Ivan_korolev

Как поменять байты местами?

Эта самопальная функция рассчитывает CRC-CCITT (Kermit) и все бы хорошо, но возвращает
FB56 вместо 56FB... как оптимальнее поменять байты местами?
function crc16(data) {
	var crc = 0; 
	for (var i = 0; i < data.length; i++) {
		crc ^= data.charCodeAt(i);
		for (var j = 0; j < 8; j++) {
			if (crc & 1) crc = 0x8408 ^ crc >>> 1;
			else crc >>>= 1;			
		}
	} 
	return crc;
}


console.log(crc16("test").toString(16));
  • Вопрос задан
  • 950 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
return ((crc & 0xFF) << 8) + ((crc >> 8) & 0xFF);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы