THE_ALGORITHMS Telegram 4817
Вычисление логарифма по основанию 2 для целого числа с использованием 64-битного IEEE float

Пояснение метода:
1. Объединение (union):
- Используется для интерпретации одних и тех же битов как целое число и как число с плавающей точкой.
t.u — массив из двух 32-битных целых чисел.
t.d — одно 64-битное число с плавающей точкой.

2. Установка значений:
- t.u[FLOAT_WORD_ORDER == __ORDER_LITTLE_ENDIAN] = 0x43300000; устанавливает старший 32-битный элемент. В зависимости от порядка байтов, этот элемент может быть первым или вторым в массиве u.
- t.u[FLOAT_WORD_ORDER != __ORDER_LITTLE_ENDIAN] = v; помещает исходное целое число v в младший 32-битный элемент u.

3. Манипуляция числом с плавающей точкой:
- t.d -= 4503599627370496.0; вычитает 2^52 (представленное как 4503599627370496.0), чтобы настроить мантиссу и порядок так, чтобы результат оставался корректным для вычисления логарифма.

4. Извлечение порядка:
r = (t.u[FLOAT_WORD_ORDER == __ORDER_LITTLE_ENDIAN] >> 20) - 0x3FF; извлекает порядок из числа с плавающей точкой и корректирует его путем вычитания смещения (bias) 0x3FF (или 1023 в десятичной системе).



tgoop.com/the_algorithms/4817
Create:
Last Update:

Вычисление логарифма по основанию 2 для целого числа с использованием 64-битного IEEE float

Пояснение метода:
1. Объединение (union):
- Используется для интерпретации одних и тех же битов как целое число и как число с плавающей точкой.
t.u — массив из двух 32-битных целых чисел.
t.d — одно 64-битное число с плавающей точкой.

2. Установка значений:
- t.u[FLOAT_WORD_ORDER == __ORDER_LITTLE_ENDIAN] = 0x43300000; устанавливает старший 32-битный элемент. В зависимости от порядка байтов, этот элемент может быть первым или вторым в массиве u.
- t.u[FLOAT_WORD_ORDER != __ORDER_LITTLE_ENDIAN] = v; помещает исходное целое число v в младший 32-битный элемент u.

3. Манипуляция числом с плавающей точкой:
- t.d -= 4503599627370496.0; вычитает 2^52 (представленное как 4503599627370496.0), чтобы настроить мантиссу и порядок так, чтобы результат оставался корректным для вычисления логарифма.

4. Извлечение порядка:
r = (t.u[FLOAT_WORD_ORDER == __ORDER_LITTLE_ENDIAN] >> 20) - 0x3FF; извлекает порядок из числа с плавающей точкой и корректирует его путем вычитания смещения (bias) 0x3FF (или 1023 в десятичной системе).

BY Алгоритмы и структуры данных




Share with your friend now:
tgoop.com/the_algorithms/4817

View MORE
Open in Telegram


Telegram News

Date: |

How to build a private or public channel on Telegram? During a meeting with the president of the Supreme Electoral Court (TSE) on June 6, Telegram's Vice President Ilya Perekopsky announced the initiatives. According to the executive, Brazil is the first country in the world where Telegram is introducing the features, which could be expanded to other countries facing threats to democracy through the dissemination of false content. The imprisonment came as Telegram said it was "surprised" by claims that privacy commissioner Ada Chung Lai-ling is seeking to block the messaging app due to doxxing content targeting police and politicians. bank east asia october 20 kowloon There have been several contributions to the group with members posting voice notes of screaming, yelling, groaning, and wailing in different rhythms and pitches. Calling out the “degenerate” community or the crypto obsessives that engage in high-risk trading, Co-founder of NFT renting protocol Rentable World emiliano.eth shared this group on his Twitter. He wrote: “hey degen, are you stressed? Just let it out all out. Voice only tg channel for screaming”.
from us


Telegram Алгоритмы и структуры данных
FROM American