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

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

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

 
 Ответить  Открыть новую тему 
> Знаковое число-слово перевести в 16тиричную строку?, ????
DiSkEtKa
сообщение 24.09.2006 11:46
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.09.2006 12:03
Сообщение #2


Гость






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


Пионер
**

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

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


В задании написано: знаковое число слово перевести в 16тиричную строку...Я думала, что слово значит, что тип word..как же бвть?? unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 24.09.2006 15:45
Сообщение #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 
 К началу страницы 
+ Ответить 
DiSkEtKa
сообщение 24.09.2006 17:01
Сообщение #5


Пионер
**

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

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


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


Гость






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


Пионер
**

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

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


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


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

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

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


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



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


Пионер
**

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

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


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


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

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

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


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


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


Пионер
**

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

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


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


Гость






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

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


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

Ссылку на FromDec klem4 уже дал...
 К началу страницы 
+ Ответить 
DiSkEtKa
сообщение 1.10.2006 15:45
Сообщение #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 - 2.11.2006 18:39
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 1.10.2006 15:58
Сообщение #14


Гость






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


Пионер
**

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

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


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


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

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

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

 



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