Вход Расширение int в C
Так что у меня возникли проблемы с получением поля типа int и последующим подписанием его расширения. У меня есть метод, который получает поле Int.
getField(int value, int hi, int lo);
Ценность это то, что яЯ беру поле с, а привет и вот размер поля.
Так что я могу вызвать этот метод getField внутри getFieldSignExtended (int value, int hi, int lo), но как мне пойти на знак расширения его?
напримерvalue = 7, hi = 1, lo = 0
getField(7, 1, 0);
возвращает 3, потому что 7 в двоичном виде - это 111, а hi и lo принимают поле от 0 до 1.
При возвращении 3 из getField я получаю, что значение равно 0x0003.
То, что у меня есть, работает с позитивами, но сильно портит негативы. И когда я говорюиспортить" Я имею в виду, что это не работает вообще. Так что, если я попытаюсь использовать его на -1, он будет показан как большой int вместо отрицательного.
Спасибо за любую помощь! :]
Изменить: Извините, я перепутал себя и некоторых из вас с противоречивым утверждением: P. Исправлена.'