Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2011, 15:36   #1
колянчик1712
 
Регистрация: 25.12.2011
Сообщений: 3
Стрелка Написать программу выполнения арифметических операция в разных системах счисления

Помогите добрые люди( Если что могу денег на телефон скинуть ...)
Перевод числа из одной системы счисления в другую и выполнение арифметических операций.


Задание: Напишите программу выполнения арифметических операций в разных системах счисления.

(мое задание)- Числа по основанию 10 и 16. Выполнить операцию сложения

Помогите пожалуюста сделать на чем нибудь . Я в нем нуб ,а сдавать завтра последний день ... Если что могу денег на телефон скинуть ...
колянчик1712 вне форума Ответить с цитированием
Старый 27.12.2011, 15:57   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да ну. бросьте. это же элементарно - переводите шестнадцатеричное число в десятичную систему. выполните сложение.
вывести результат.

примеров перевода чисел из одной СС в другую на форуме ПОЛНО...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.12.2011, 16:43   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
function dec2hex(dec: longint): string;
const
hexdigts: string[16] = '0123456789abcdef';
var
hex : string;
i, j: longint;
begin
if dec = 0 then hex := '0'
else
begin
hex := '';
i := 0;
while (1 shl ((i + 1) * 4)) <=dec do i := i + 1;
{ 16^n = 2^(n * 4) }
{ (1 shl ((i + 1) * 4)) = 16^(i + 1) }
for j := 0 to i do
begin
hex := hex + hexdigts[(dec shr ((i - j) * 4)) + 1];
{ (dec shr ((i - j) * 4)) = dec div 16^(i - j) }
dec := dec and ((1 shl ((i - j) * 4)) - 1);
{ dec and ((1 shl ((i - j) * 4)) - 1) = dec mod 16^(i - j) }
end;
end;
dec2hex := hex;
end;

function hex2dec(hex: string): longint;
function digt(ch: char): byte;
const
hexdigts: string[16] = '0123456789abcdef';
var
i: byte;
n: byte;
begin
n := 0;
for i := 1 to length(hexdigts) do
if ch = hexdigts[i] then n := i - 1;
digt := n;
end;
const
hexset: set of char = ['0'..'9', 'a'..'f'];
var
j    : longint;
error: boolean;
dec  : longint;
begin
dec := 0;
error := false;
for j := 1 to length(hex) do
begin
if not (upcase(hex[j]) in hexset) then error := true;
dec := dec + digt(upcase(hex[j])) shl ((length(hex) - j) * 4);
{ 16^n = 2^(n * 4) }
{ n shl ((length(hex) - j) * 4) = n * 16^(length(hex) - j) }
end;
if error then hex2dec := 0
else hex2dec := dec;
end;
взял отсюда
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу для перевода из 16-ричной системы счисления в 10-тичную, использовать процедурую(написать Delphi) BLADIMIR Помощь студентам 3 07.09.2011 16:35
Рисование в разных системах координат Marsel737 Общие вопросы Delphi 0 07.06.2011 19:18
Представление чисел в разных системах счисления Slavytich Помощь студентам 2 03.04.2011 11:55
в делфи написать программу счисления ангелочик Помощь студентам 1 16.11.2010 23:53
Арифметические операции в различных системах счисления (Си) LiToRBoL Помощь студентам 7 08.01.2009 18:13