В общем у меня задание такое: нужно перевести знаковое число типа word
в шестнадцатеричную строку.. Пожскажите пожалуйста как можно следить
за знаком(если отр число то переводить его абс. величину чтоли?), если нам дано
конекретное чило а, а не массив..я не могу никак додуматься..
В задании написано: знаковое число слово перевести в 16тиричную строку...Я думала, что слово значит, что тип word..как же бвть??
Думаю ты не правильно поняла, тип Word как таковой тут не причем, на соклько я понял в твоем задании надо просто пересести слово, заданное восемью разрядами в hex.
то есть
0000 1111 = 0000 000F (15)
?
Если так, то http://forum.pascal.net.ru/index.php?s=&showtopic=4535&view=findpost&p=38226
Klem4, наверное ты прав..сейчас почитаю эту ссылку..а что такое hex?
Hexadecimal (шестнадцатеричный формат)
Но ведь мне чила нужно вводить в 10тичной системе счисления..?!?!
Ну и что ? Ты по ссылке ходила ? С помощью тех подпрограмм которые там есть, можно перевести число из одной сс в любую другую !
А если число со знаком минус?Нужно использовать дополнительный код чтоли?
Так. Давай определимся. В каком формате тебе надо вводить число ? В виде строки вида '#### ####' или в виде целого знакового числа ? (Integer)
?
в виде целого знакового числа
Ну, так в чем проблема?
var
n: integer;
begin
n := -15; { Или ReadLn(n) }
writeln( FromDec(Word(n), 16) );
end.
volvo, честно говоря не совсем поняла, что ты сделал, мне такое нельзя использовать, так как мы ещё не прошли этотFromDec.... Я разолбралась с заданием, вообщем мне нужно перевести знаковое чилсо( тип integer) в шестнадцатеричную строку...делаю, делаю, а уменя программа совес ничего не считает..подскажите пожалуйста, в чём проблема в моей мрограммке...
program nomer2;
var
a,i,n:integer;
t:array[1..7] of char;
F:boolean;
begin
writeln('vvedite chislo');
readln(a);
i:=0;
n:=7;
if a<0 then
begin
F:=TRUE;
a:=abs(a);
end;
i:=n;
while a<>0 do
begin
if a<=9 then
begin
t[i]:=chr(a mod 16+48);
a:=a div 16;
i:=i-1
end
if f=true then
writeln('-',a)
else writeln(a);
end.
Очень интересно...
chr(a mod 16+48);, значит тебе можно использовать, а написать свою функцию - нельзя? Ну, тогда дорабатывай... Я велосипедостроением не занимаюсь. Если есть уже написанная и отлаженная функция, я предпочитаю использовать ее. А не используешь - зачем Паскаль учишь? Учи Бейсик, там тоже преподаватели предпочитают чтоб всё без функций было сделано