Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
NeoN757
0 / 0 / 0
Регистрация: 01.07.2013
Сообщений: 44
1

Задача по системам счисления

29.03.2015, 11:45. Просмотров 774. Ответов 6
Метки нет (Все метки)

Здравствуйте, помогите решить задачку по системам счисления

1) Решить уравнение
X+0x7777*9=0xABCD

я исходил из того, что в десятичной системе
x + 275247 = 43981
x=-231266

но ответ неверный, т.к. должен быть записан в диапазоне -32768 до 32767

как можно представить число в этом диапазоне?

2) 0xABCD+0x2253=?
выходит 52768, но опять же не укладывается в диапазон

ответ должен быть указан в десятичной форме
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2015, 11:45
Ответы с готовыми решениями:

Информация по системам счисления
Начал обучение языку java и понял, что я совсем не знаю двоичную, восьмеричную, и шестнадцатеричную...

Ищу учебник по системам счисления
Доброго времени суток, форумчане! Облазил весь инет, но толкового по системам счисления та ки не...

Посоветуйте литературу по системам счисления
Всем привет. Будьте добры, поделитесь ссылками, где можно почитать про системы счисления....

Тестовые задания по кодированию и системам счисления
Помогите ответить на вопросы теста! А) Лишним среди шестнадцатеричных кодов символов {29, 81,...

Найти ошибку в программе по системам счисления
program Lab1; Uses crt; const s:string='0123456789ABCDEFGHIJKLMNOPQRSTU'; Function...

6
Mikl___
Автор FAQ
14331 / 6682 / 699
Регистрация: 11.11.2010
Сообщений: 12,005
30.03.2015, 05:21 2
Решить уравнение
hexdec
X+0x7777*9=0xABCDX+30583*9=-21555
X=0xFABCD-0x4332FX=-21555-275247
X=0xB789E=-296802X=-296802

hexdec
0xABCD+0x2253=0xCE20-21555+8787=-12768
1
NeoN757
0 / 0 / 0
Регистрация: 01.07.2013
Сообщений: 44
30.03.2015, 09:26  [ТС] 3
Цитата Сообщение от Mikl___ Посмотреть сообщение
Решить уравнение
hex*
dec*
X+0x7777*9=0xABCD X+30583*9=-21555
X=0xFABCD-0x4332F X=-21555-275247
X=0xB789E=-296802 X=-296802
hex*
dec*
0xABCD+0x2253=0xCE20 -21555+8787=-12768
Спасибо большое, вот только сказано что ответ должен быть записан в диапазоне -32768 до 32767
0
Mikl___
Автор FAQ
14331 / 6682 / 699
Регистрация: 11.11.2010
Сообщений: 12,005
30.03.2015, 11:53 4
Цитата Сообщение от NeoN757 Посмотреть сообщение
Спасибо большое, вот только сказано что ответ должен быть записан в диапазоне -32768 до 32767
Из этого только следует, что результат будет со знаком, но 0х7777=777716=3058310 это уже на пределе диапазона, а если это число умножить на 9 тогда 9х3058310=27524710 что больше 32767 и для хранения такого числа понадобится не 16 разрядов (-32768=-215 а 32767=215-1 и один разряд под знак 1+15=16), а 20 разрядов (19 разрядов число + 1 разряд под знак), тогда мы можем работать с числами от -524288=-219 до +524287 =219-1
отрицательное двоичное или шестнадцатеричное число это число с единичным старшим битом и положительное число это число с нулевым старшим битом, посмотри на граничные числа диапазона от -32768=800016= 10000000000000002 до 32767=7FFF16=01111111111111112 для увеличения диапазона знак можно "расширить", то есть заполнить содержимым знакового разряда старшие разряды числа, поэтому 0xABCD=0xFABCD=-2155510
почитай http://www.cyberforum.ru/assembler-articles/thread1005284.html http://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "ГЛАВА 2. ПРЕДСТАВЛЕНИЕ ДАННЫХ" http://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "Представление отрицательных двоичных целых чисел" http://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "Расширение знака и расширение нуля"
0
NeoN757
0 / 0 / 0
Регистрация: 01.07.2013
Сообщений: 44
30.03.2015, 14:41  [ТС] 5
Цитата Сообщение от Mikl___ Посмотреть сообщение
что больше 32767 и для хранения такого числа понадобится не 16 разрядов (-32768=-215 а 32767=215-1 и один разряд под знак 1+15=16), а 20 разрядов (19 разрядов число + 1 разряд под знак), тогда мы можем работать с числами от -524288=-219 до +524287 =219-1
вся проблема именно в том что число должно быть записано в 16 разрядах. То есть нужно как отнять лишнее, чтобы оно уложилось в этот диапазон
0
Shamil1
Модератор
2438 / 1650 / 367
Регистрация: 26.03.2015
Сообщений: 6,035
30.03.2015, 16:40 6
C#
1
2
3
4
5
6
7
8
9
10
11
unchecked
{
    short a = (short)0xABCD;
    short b = (short)0x7777;
    short d = (short)(b * 9);
    short x = (short)(a - d);
    Console.WriteLine("{1} ({0})", x, Convert.ToString(x, 16).ToUpper());
 
    short x2 = (short)(0xABCD - 0x7777*9);
    Console.WriteLine("{1} ({0})", x2, Convert.ToString(x2, 16).ToUpper());
}
0
Mikl___
Автор FAQ
14331 / 6682 / 699
Регистрация: 11.11.2010
Сообщений: 12,005
31.03.2015, 04:35 7
Цитата Сообщение от NeoN757 Посмотреть сообщение
вся проблема именно в том что число должно быть записано в 16 разрядах
тогда это число не будет верным ответом, проблема, скорее всего, в неправильных исходных данных -- покажи мои рассуждения своему преподавателю и выложи здесь его ответ
Цитата Сообщение от NeoN757 Посмотреть сообщение
То есть нужно так отнять лишнее, чтобы оно уложилось в этот диапазон
нельзя на ногу 47 размера натянуть туфлю 35-ого
0
31.03.2015, 04:35
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2015, 04:35

Калькулятор по системам счисления. Ошибка массива
Здравствуйте. Пытаюсь сделать калькулятор для системы счисления и не могу понять, почему у меня...

Задача по распределенным системам (Java)
Прошу помощи со следующим заданием: Напишите программу моделирования с использованием на языке...

Вакансия: по серверным системам и системам хранения данных
В ведущей российской компании (системный интегратор) открыта вакансия Инженер по серверным системам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.