@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));
  • Вопрос задан
  • 933 просмотра
Решения вопроса 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
return ((crc & 0xFF) << 8) + ((crc >> 8) & 0xFF);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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