Как преобразовать float в uint16 и обратно?



@TheRelow

У меня есть два значения: [15692, 52429]. Это float.
Мне нужно их преобразовывать в uint16.
И наоборот. Например, float 1.234 в два числа в uint16.

То есть, например:
uint16ToFloat([15692, 52429]) возвращает float.
floatToUint16(1.234) возвращает uint16.

Пример того что я хочу сделать:

export function fromUint16(uint16) {
  return ((+uint16[0] << 16) + +uint16[1])
}

export function uint32ToUint16(uint32) {
  const data = [uint32 >> 16, uint32 & 0xffff];
  return data
}

Этот код переводит uint32 в uint16 и обратно.
601a612ca6fbf357856361.png
Мне нужно так-же переводить float в uint16 и выводить uint16. На скрине есть float значение ([15692, 52429])


Решения вопроса 0


Ответы на вопрос 1



@profesor08 Куратор тега JavaScript

https://www.w3schools.com/js/js_numbers.asp

Грубо говоря, есть только Number. Это все, и с точкой, и без точки. 64 бита, которые хранят инфу о величине числа, о плавающей точке, и о знаке. (16 === 16.00) === true

Если надо преобразовать из одного диапазона в другой, то так и напиши, что есть диапазон чисел от 1000 до 50000 и надо преобразовать число в диапазон от 0.005 до 1.6. Формула гуглится за пару секунд.

Добавить комментарий

Ваш адрес email не будет опубликован.