![]() |
eXeL@B —› Программирование —› инвертировать число |
Посл.ответ | Сообщение |
|
Создано: 05 мая 2009 21:52 · Личное сообщение · #1 |
|
Создано: 05 мая 2009 22:09 · Личное сообщение · #2 |
|
Создано: 05 мая 2009 22:22 · Личное сообщение · #3 |
|
Создано: 06 мая 2009 01:42 · Личное сообщение · #4 |
|
Создано: 06 мая 2009 02:12 · Личное сообщение · #5 я не знаю, как это объяснить, но происходит считывание из файла. В файле текст. Например такой 10000100100101100110011111001001. Т.е. одна срочка. Я считаю, что это как бы двоичное число, считываю его в строку и потом по символам перевожу в нормальное число типа single. Из считанных 32 символов я вырезаю 21 (так надо по стандарту) и потом перевожу в single. Считанное как бы "двоичное число" на самом деле представляет мантиссу дробного двоичного числа. Т.е, если я считал '101', то это по идее 0,101b. Code:
Проблема в том, что отрицательные числа передаются в дополнительном коде и для их преобразования в обычный вид я вичитаю 1 из числа и потом ивертирую. Пример: 011b - 1 = 010b далее получаем 101b Я пока, что обошел перевод закодированных отрицательных числел так: то, что поступило на вход в виде строки сразу преобразовал, а далее можно рассматривать преобразованную строку как входные данные(как будто это так и поступило). Code:
Просто хотел уточнить, моет есть способ попроще, чтобы считать слово, вырезать 21 символ, преобразовать, а потом (если оно отрицательное) учесть это и сделать из него нормально число... ![]() |
|
Создано: 06 мая 2009 03:33 · Личное сообщение · #6 |
![]() |
eXeL@B —› Программирование —› инвертировать число |