IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Знаковое число-слово перевести в 16тиричную строку?, ????
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский

Репутация: -  0  +


В общем у меня задание такое: нужно перевести знаковое число типа word
в шестнадцатеричную строку.. Пожскажите пожалуйста как можно следить
за знаком(если отр число то переводить его абс. величину чтоли?), если нам дано
конекретное чило а, а не массив..я не могу никак додуматься.. unsure.gif


Код
program dva;
uses crt;
var a,i:byte;
    t:array[1..8] of word;
begin
    clrscr;
    writeln('vvedite a');
    readln(a);
    i:=1;
    repeat
            t[i]:=a mod 16 +65;
            a:=a div 16;
            i:=i+1
        until a=0;
        for i:=1 to 3 do
            write(t[i]);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
знаковое число типа word
blink.gif blink.gif Что-то изменилось??? Word всегда был БЕЗзнаковым типом... Так что задача смысла не имеет, ты не можешь в Word (и в Byte, кстати, тоже) хранить отрицательное число... Любой компилятор выдаст тебе ошибку (если, конечно, ты не отключила контроль в настройках компилятора, но тут уж сама виновата)...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский

Репутация: -  0  +


В задании написано: знаковое число слово перевести в 16тиричную строку...Я думала, что слово значит, что тип word..как же бвть?? unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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

то есть

0000 1111 = 0000 000F (15)

?

Если так, то FAQ : Системы счисления


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский

Репутация: -  0  +


Klem4, наверное ты прав..сейчас почитаю эту ссылку..а что такое hex? unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Hexadecimal (шестнадцатеричный формат)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский

Репутация: -  0  +


Но ведь мне чила нужно вводить в 10тичной системе счисления..?!?! unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Ну и что ? Ты по ссылке ходила ? С помощью тех подпрограмм которые там есть, можно перевести число из одной сс в любую другую !



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский

Репутация: -  0  +


А если число со знаком минус?Нужно использовать дополнительный код чтоли?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Так. Давай определимся. В каком формате тебе надо вводить число ? В виде строки вида '#### ####' или в виде целого знакового числа ? (Integer)
?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский

Репутация: -  0  +


в виде целого знакового числа unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Ну, так в чем проблема?
var
n: integer;

begin
n := -15; { Или ReadLn(n) }
writeln( FromDec(Word(n), 16) );
end.


Можешь проверить с использованием калькулятора Windows...

Ссылку на FromDec klem4 уже дал...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский

Репутация: -  0  +


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.


Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Очень интересно...
chr(a mod 16+48);
, значит тебе можно использовать, а написать свою функцию - нельзя? Ну, тогда дорабатывай... Я велосипедостроением не занимаюсь. Если есть уже написанная и отлаженная функция, я предпочитаю использовать ее. А не используешь - зачем Паскаль учишь? Учи Бейсик, там тоже преподаватели предпочитают чтоб всё без функций было сделано nea.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский

Репутация: -  0  +


Цитата
Если есть уже написанная и отлаженная функция, я предпочитаю использовать ее. А не используешь - зачем Паскаль учишь?


Всё равно спасибо..сейчас попробую так как ты сказал сделать

Сообщение отредактировано: DiSkEtKa -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 25.09.2017 4:11
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"