Мне представлены два 32-разрядных целых числа, которые имеют в них кодированную в ASCII-строку с фиксированной длиной 8 символов.Декодирование фиксированной строки из целых чисел в Javascript
Например, строка «HEYTHERE» разделена на «HEYT» и «ЗДЕСЬ», и каждый из них разбит на четыре байта, чтобы дать 0x48455954 и 0x48455245 или 1212504404 и 1212502597 соответственно.
Каков наиболее эффективный способ преобразования этих двух чисел обратно в строку в Javascript?
До сих пор у меня есть следующий, но мне интересно, если есть быстрее/менее неуклюжий способ:
let xx1 = [ 1212504404, 1212502597 ];
let xx1str = String.fromCharCode((xx1[0] >> 24) & 255) +
String.fromCharCode((xx1[0] >> 16) & 255) +
String.fromCharCode((xx1[0] >> 8) & 255) +
String.fromCharCode(xx1[0] & 255) +
String.fromCharCode((xx1[1] >> 24) & 255) +
String.fromCharCode((xx1[1] >> 32) & 255) +
String.fromCharCode((xx1[1] >> 8) & 255) +
String.fromCharCode(xx1[1] & 255);
Спасибо. Мне нравится подход к поиску, хотя, поскольку мой случай должен быть для любой общей строки, закодированной таким образом, кешированный поиск, вероятно, должен быть необоснованным большим. Честно говоря, я скорее надеялся, что кто-то покажет мне аккуратное средство, встроенное в язык, который позволит мне сделать это в меньшем количестве кода и, желательно, без всех сдвигов и «и это то, что мое усилие использует. –
зачем вам это нужно? – exebook
Представить данные, предоставляемые системой в виде двух 32-разрядных целых чисел, интерфейсу, который вводит восемь символов в качестве входных данных. Невозможно изменить либо выход первой системы, либо входной сигнал второй, поэтому необходимо преобразование. –