64 / 64 / 10
Регистрация: 26.06.2010
Сообщений: 332
1

Программа перевода чисел из двоичной в десятеричную и шестнадцатеричную системы счисления и наоборот

24.07.2010, 11:20. Показов 8355. Ответов 4
Метки нет (Все метки)

Нужно написать программу переводящую числа из двоичной в десятеричную и шестнадцатеричную системы счисления и наоборот. На форме расположены 3 edit и при вводе в один из них числа и нажатии на кнопку "вычислить" в других двух edit появлялось то же число только в других системах счисления. И ещё нужно при нажатии на кнопку "сменить знак" менять знак числа во всех edit на минус. Вот всё что я пока что сделал.
Вложения
Тип файла: zip Архив ZIP - WinRAR.zip (262.7 Кб, 385 просмотров)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2010, 11:20
Ответы с готовыми решениями:

Программа для перевода чисел с 1-ой системы счисления в другую
Программа есть но не магу запустить на Delphi помогите пожалуйста. Желательно скинуть файл с делфи....

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

Функция перевода из двоичной системы счисления в десятичную
Доброго времени суток, помогите написать функцию перевода из двоичной системы счисления в десятичную

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

4
8 / 8 / 2
Регистрация: 13.07.2010
Сообщений: 14
24.07.2010, 14:03 2
Эх, мне делать нечего, посочиняю немного))

В делфях есть функция StrToInt(const S: string): Integer, но она принимает на входе строку с десятичным числом, или с шестнадцатеричным, если после знака и перед числом поставить знак $ (Например: $FF, -$FF ...). Значит использовать следующий код не правильно:
Delphi
1
2
3
4
if labelededit1.Text<>'' then a:=strtoint(labelededit1.Text) else
if labelededit2.Text<>'' then a:=strtoint(labelededit2.Text) else
if labelededit3.Text<>'' then a:=strtoint(labelededit3.Text) else
label1.Caption:='Введите значение';
В каждом случае нужно вводить данные своего типа. Для ввода недесятичных чисел можно создать свои функции.

С выводом такая же проблема. Я тоже использовал функции.

1. Конвертация: все числа в памяти хранятся в двоичной системе. Остается записать их в нужной системе счисления.
2. Сменить знак: то же что и в первом случае, только перед выводом число домножить на -1.

Я не уверен, что мое решение самое рациональное, но главное: оно работает. Можно улучшать, но это уже другая история... Готовая программа во вложении.
1
64 / 64 / 10
Регистрация: 26.06.2010
Сообщений: 332
24.07.2010, 17:09  [ТС] 3
Спасибо, конечно это решение действительно не самое рациональное но дальше я уже сам доделаю. Только смена знака не такая как мне нужна была. Со знаком- я и сам мог бы сделать. Мне нужно сделать при помощи инверсии. Например: 1 в двоичной системе счисления=0001, а -1=1111(если я не ошибаюсь). Если у вас есть варианты решения подскажите пожалуйста.

Mawrat: -1=1111 - это представление называется "дополнительным кодом". Т. е. надо было писать, что требуется представить отрицательные числа в дополнительном коде.
0
13090 / 5871 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
24.07.2010, 19:02 4
Для представления отрицательно двоичного числа в дополнительном коде надо разряды модуля числа проинверитировать и прибавить к числу единицу.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button1Click(Sender: TObject);
var
  a, a1 : Longword;
  PA, PA1 : ^Integer;
begin
  //a  = 00000000 00000000 00000000 00001010
  a := 10;
  //a1 = 11111111 11111111 11111111 11110110
  a1 := ( not a ) + 1;
  
  PA := @a;
  PA1 := @a1;
  
  //Получим ответ: a = 10, a1 = -10.
  ShowMessage(
    'a как тип Integer равен: ' + IntToStr(PA^) + #10
    + 'a1 как тип Integer равен: ' + IntToStr(PA1^)
  );
end;
1
64 / 64 / 10
Регистрация: 26.06.2010
Сообщений: 332
25.07.2010, 15:54  [ТС] 5
Ладно я обойдусь и с переводом. Сменить знак в принципе можно всегда и обычным способом. Спасибо за помощь. Вот готовая программа, может кому-нибудь ещё понадобится.
Вложения
Тип файла: zip Архив ZIP - WinRAR.zip (367.2 Кб, 561 просмотров)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.07.2010, 15:54
Помогаю со студенческими работами здесь

Перевод чисел из восьмеричной системы счисления в десятичную, шестнадцатеричную, и двоичную
Перевод чисел из восьмеричной системы счисления в десятичную, шестнадцатеричную, и двоичную. Срочно...

Программа для перевода числа из 8-й системы счисления в 10-ю
Помогите составить программу для перевода числа из 8-й системы счисления в 10-ю. Ничего не выходит...

Перевод чисел из двоичной системы счисления в десятичную
program Bin2Dec; {$APPTYPE CONSOLE} uses SysUtils; Var a: string; p, i, s, b, Code :...

Разработать калькулятор перевода десятичного числа в шестнадцатеричную систему счисления
Разработать калькулятор перевода десятичного числа в шестнадцатеричную систему счисления....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru