Как реализовать округление чисел на Java по разрядах? Это задача по обработке сигналов. Есть математическая функция (в моем случае там sin будет браться из последовательности дробей с x). Мне нужно сделать 8 и 16 разрядное округление операндов (и в итоге результата) при вычислении функции и в результате для каждого x должно выйти три разных значения функции: обычное, с 8 разрядным округлением и с 16 разрядным округлением. Как я понимаю, в Java, чтобы округлить до 8 разрядов число достаточно привести в byte, а если до 16 разрядов, то в short, но проблема в том, что у меня значения функции дробовые и как я понимаю это так просто нельзя сделать. Я пришел к выводу, что можно разделить целую и дробовую части и округлить дробовую часть воспринимая ее как целую по сказанному уже алгоритму с byte/short, а потом обратно склеить. Как это можно сделать?

21 Авг 2019 в 06:09
133 +1
0
Ответы
1

Да, вы правильно подметили, что для округления чисел до 8 и 16 разрядов вы можете использовать типы данных byte и short соответственно. Однако, учитывая, что у вас дробовые значения, вам нужно разделить целую и дробную части числа перед округлением.

Вот пример, как можно округлять дробную часть числа до 8 и 16 разрядов:

double number = 10.123456789; // Пример дробового числа
// Разделение на целую и дробную части
int integerPart = (int) number;
double fractionalPart = number - integerPart;
// Округление дробной части
byte rounded8 = (byte) (fractionalPart * 256); // 2^8 = 256
short rounded16 = (short) (fractionalPart * 65536); // 2^16 = 65536
// Склеивание числа обратно
double roundedNumber8 = integerPart + rounded8 / 256.0;
double roundedNumber16 = integerPart + rounded16 / 65536.0;
System.out.println("Исходное число: " + number);
System.out.println("Число с 8 разрядным округлением: " + roundedNumber8);
System.out.println("Число с 16 разрядным округлением: " + roundedNumber16);

Этот пример позволит вам округлить дробную часть числа до 8 и 16 разрядов, а затем склеить число обратно. Надеюсь, это поможет вам в решении вашей задачи по обработке сигналов.

20 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир