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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2012, 16:39   #1
@нтошка
Помог? Дави весы!
Пользователь
 
Регистрация: 15.05.2012
Сообщений: 25
Подмигивание Создать число по двум байтам

Доброго времени суток, уважаемые программисты

Суть задачи такова: как мне записать неотрицательное число в 2 байта и достать его обратно Т.е. это число будет в диапазоне 0..65025 . Помогите, кто чем может.

Последний раз редактировалось @нтошка; 07.06.2012 в 16:53. Причина: Опечатка
@нтошка вне форума Ответить с цитированием
Старый 07.06.2012, 18:00   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,318
По умолчанию

Честно говоря, не понял вопроса.
Расскажите подробнее.
Во-первых, 0..65535.
Во-вторых, это тип word - 2 байта, неотрицательное число.
Код:
uses
  crt;

var
  a, b: byte;
  c: word;

begin
  write('Input first byte: ');
  readln(a);
  write('Input second byte: ');
  readln(b);
  c := a shl 8 + b;
  writeln('2-byte number: ', c);
  readln;
end.
Т.к. не понял, чего вы хотите, вот программа, собирающая из 2 однобайтовых чисел 1 двухбайтовое.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 07.06.2012, 18:26   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Тоесть введется 2 двоичных числа? И из низ нужно "склеить" 1 десятиричное?
И 1(введеный) байт у вас старший или младший? (например в Intel меньший байт по меньшему адресу)
Poma][a вне форума Ответить с цитированием
Старый 07.06.2012, 19:03   #4
@нтошка
Помог? Дави весы!
Пользователь
 
Регистрация: 15.05.2012
Сообщений: 25
По умолчанию

Поясняю: да , мне действительно нужно из двух однобайтовых чисел получить одно двухбайтовое.
@нтошка вне форума Ответить с цитированием
Старый 07.06.2012, 20:20   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Это можно сделать тысячей разных способов. Который из них Вам нужен?
s-andriano вне форума Ответить с цитированием
Старый 08.06.2012, 06:38   #6
@нтошка
Помог? Дави весы!
Пользователь
 
Регистрация: 15.05.2012
Сообщений: 25
По умолчанию

Честно говоря, мне сгодился бы любой способ. А еще лучше посоветовать лит-ру, ибо я хочу в этом разобраться.
@нтошка вне форума Ответить с цитированием
Старый 08.06.2012, 07:20   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Да, блин, в чём проблема.
Если числа шестнадцетиричные старшее умножаем на 256 затем суммируем младшее и записывем в любой подходящий тип.
Делов на две секунды, а холивара - на пол дня.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 08.06.2012, 09:11   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Если числа шестнадцетиричные старшее умножаем на 256
<flame.mode="on">
не, надо так:
- если числа шестнадцетиричные, старший байт умножаем на $100
- если числа десятичные, старший байт умножаем на 256
- если числа восьмиричные, старший байт умножаем на 400
- если числа двоичные, старший байт умножаем на 100000000
<flame.mode="off">
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 08.06.2012 в 09:16.
veniside вне форума Ответить с цитированием
Старый 08.06.2012, 19:32   #9
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от @нтошка Посмотреть сообщение
Честно говоря, мне сгодился бы любой способ. А еще лучше посоветовать лит-ру, ибо я хочу в этом разобраться.
Это вы пока так думаете, что любой.
Способ целиком определяется исходной задачей, а задачу Вы не указываете.
Я, например, могу предложить объединять байты вперемешку через бит. Но, боюсь, Вы столкнетесь в какой-нибудь несовместимостью, если воспользуетесь этим предложением.
Поэтому напишите, для чего это Вам нужно, а мы попытаемся подобрать способ наиболее подходящий для Вашей задачи.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано трехзначное число. Если в сумме его цифр присутствует число 7,то число записать в зеркальном виде ( Паскаль ) Эля777 Помощь студентам 5 22.04.2013 23:23
Считать по байтам b2soft Общие вопросы C/C++ 3 28.05.2012 21:21
Дано целое число К и строковый файл. Создать 2 новых файла по условию Lulika Паскаль, Turbo Pascal, PascalABC.NET 2 14.04.2012 18:35
Создать программу замены четных элементов линейного массива на заданное число d MrJohanson Помощь студентам 3 26.01.2010 12:25