Отговори на тема  [ 6 мнения ] 
преобразуване на число... 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Сеп 24, 2005 2:00 pm
Мнения: 787
Мнение преобразуване на число...
Аз да ви питам един тъп въпрос ако може, че нещо ми е блокирало АЛУ-то тия дни...
Как се конвертира от "2's-complement" (на български май му се вика допълнителен код) към нормално число без знак? Имам предвид то е ясно че с 1-2 if {} и малко обработка ще стане ама нещо елегантно ми трябва. Сигурно има нещо с един ред...
Пример:
Имам 16-битови числа в намаляващ ред 0x7fff (32767) -> 0 -> 0xffff (-1) -> 0x8000 (-32768). Искам да ги направя 0xffff (65535) -> 0, където предполагам че първоначалната 0 ще ми стане 0x8000.
Става дума за обработка на звукови семпли.

Мерси!


Вто Фев 02, 2010 11:27 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Инвертиране + 1. Май така беше.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Вто Фев 02, 2010 11:38 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение 
Ами само прибави или извади 0x8000.


Вто Фев 02, 2010 11:49 am
Профил ICQ WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Сеп 24, 2005 2:00 pm
Мнения: 787
Мнение 
Не става Цецо :) Поне не в тоя случай.

Ето ти пример:
имам 0xfffe (т.е. -2). Инвертирам и добавям 1 и става +2, а трябва да се получи 0x8002
Ето друг:
0x5555 след инвертиране+1 става 0xaaab, а целта е 0xd555


:cry:


Вто Фев 02, 2010 11:50 am
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Окт 11, 2006 8:19 pm
Мнения: 373
Местоположение: София/Edinburgh, UK
Мнение 
Ами ти всъщност не искаш да превърнеш от 2's complement в нормален двоичен запис (да вземеш модула все едно), а просто искаш да изместиш интервала от (-32768;32767) на (0; 65536). За това relesys e прав, просто прибави 0x8000 - половината на интервала.

_________________
Българският портал за РОБОТИКА


Вто Фев 02, 2010 12:01 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Сеп 24, 2005 2:00 pm
Мнения: 787
Мнение 
Ей, верно бе :D То понякога като задълбае човек трудното и пропуска лесното
Мерси!


Вто Фев 02, 2010 12:11 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 6 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни