Как преобразовать строку, содержащую двоичное значение с плавающей запятой половинной точности, в короткое число со знак ⇐ C++
Как преобразовать строку, содержащую двоичное значение с плавающей запятой половинной точности, в короткое число со знак
В настоящее время я пытаюсь создать преобразователь, который принимает десятичное число и преобразует его в двоичное значение с плавающей запятой половинной точности. Введенные пользователем данные анализируются в десятичной форме на три строки: знак, целое число и значение дроби. Мне удалось заставить конвертер работать нормально, но теперь я застрял, пытаясь понять, как решить проблему переполнения.
Для иллюстрации, примером входных данных может быть 25.2 (что составит целую числовую строку 25 и дробь 2) и дробь значение 2 при преобразовании в двоичный формат повторяет 00110011.... Когда оно вводится в 16-битное двоичное число со знаком, устанавливается бит переполнения, поэтому мне нужно округлить его, добавив 1.
Я решил, что преобразование моего окончательного двоичного значения в короткое число со знаком в двоичном виде и добавление к нему 1 будет самым простым способом обработки переполнения, однако я не могу найти никакой информации об этом. как преобразовать строку, содержащую 16-битное двоичное число со знаком, например "0100111001001100" (25.2 без переполнения) в короткое со знаком число, чтобы я мог добавить к нему бит переполнения, преобразовать его обратно в строку и затем вывести.
Есть какие-нибудь предложения о том, как это сделать или даже о других способах решения этой проблемы?
В настоящее время я пытаюсь создать преобразователь, который принимает десятичное число и преобразует его в двоичное значение с плавающей запятой половинной точности. Введенные пользователем данные анализируются в десятичной форме на три строки: знак, целое число и значение дроби. Мне удалось заставить конвертер работать нормально, но теперь я застрял, пытаясь понять, как решить проблему переполнения.
Для иллюстрации, примером входных данных может быть 25.2 (что составит целую числовую строку 25 и дробь 2) и дробь значение 2 при преобразовании в двоичный формат повторяет 00110011.... Когда оно вводится в 16-битное двоичное число со знаком, устанавливается бит переполнения, поэтому мне нужно округлить его, добавив 1.
Я решил, что преобразование моего окончательного двоичного значения в короткое число со знаком в двоичном виде и добавление к нему 1 будет самым простым способом обработки переполнения, однако я не могу найти никакой информации об этом. как преобразовать строку, содержащую 16-битное двоичное число со знаком, например "0100111001001100" (25.2 без переполнения) в короткое со знаком число, чтобы я мог добавить к нему бит переполнения, преобразовать его обратно в строку и затем вывести.
Есть какие-нибудь предложения о том, как это сделать или даже о других способах решения этой проблемы?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение