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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2014, 10:55   #1
elena1991
 
Регистрация: 18.03.2014
Сообщений: 7
По умолчанию С++ Создать динамическую переменную и написать программу для работы с разрядами этой переменной

1. Создать динамическую переменную и написать программу для работы с разрядами этой переменной в соответствии со своим вариантом индивидуального задания (Таблица 13) двумя способами: a. Используя операции поразрядного сдвига (§ 9.2) и поразрядные логические операции (§ 9.1). b. Используя структуру объединение (union) с использованием битовых полей (§ 9.3). 2. При программировании обоими способами выводить данные на экран в десятичном и двоичном форматах. Выводить на экран размер задаваемой переменной/структуры. 3. Корректно создать и уничтожить динамическую переменную. 4. По выполненной лабораторной работе подготовить отчет с результатами работы программы. В отчет вставить листинг программного кода, и результаты выполнения программы. Отчет без комментариев не принимается.
ЗАДАНИЕ: Запрограммировать изменение четырехбайтного числа (unsigned int) так, чтобы ноль перемещался от разряда к разряду слева направо.
elena1991 вне форума Ответить с цитированием
Старый 18.03.2014, 11:01   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

и чо? вы хотели похвастаться своей задачей? что непонятно, где наработки?
p51x вне форума Ответить с цитированием
Старый 18.03.2014, 11:36   #3
elena1991
 
Регистрация: 18.03.2014
Сообщений: 7
По умолчанию

Код:
#include <iostream>
 
template <typename T>
inline int is_bit_set(const T& value, size_t pos)
  {
  return (value & (1 << pos)) != 0;
  }
 
template <typename T>
void print_by_bites(const T& value)
  {
  int last = sizeof(T) * 8 - 1;
  for (size_t i = 0; i < last; ++i)
    std::cout << is_bit_set(value, i);
  std::cout << is_bit_set(value, last) << std::endl;
  }
 
struct Byte
  {
  unsigned _0 : 1;
  unsigned _1 : 1;
  unsigned _2 : 1;
  unsigned _3 : 1;
  unsigned _4 : 1;
  unsigned _5 : 1;
  unsigned _6 : 1;
  unsigned _7 : 1;
  };
 
union Short
  {
  Byte first;
  Byte second;
 
  short value;
  };
 
int main()
  {
  std::cout << "first method" << std::endl;
 
  short *word_1 = new short(0);
  
  for (int i = 0; i < sizeof(short) * 8; ++i)
    {
    *word_1 |= (1 << i);
    print_by_bites(*word_1);
    }
 
  for (int i = 0; i < sizeof(short) * 8; ++i)
    {
    *word_1 &= ~(1 << i);
    print_by_bites(*word_1);
    }
  delete word_1;
 
  std::cout << "second method" << std::endl;
  Short *word_2 = new Short;
  memset(word_2, 0, sizeof(Short)); //clrear
 
  /*it's 3*/
  word_2->first._0 = 1;
  word_2->first._1 = 1;
 
  std::cout << "value of word_2: " << word_2->value << std::endl;
  memset(word_2, 0, sizeof(Short)); //clrear
 
  /*it's 8*/
  word_2->first._3 = 1;
  std::cout << "value of word_2: " << word_2->value << std::endl;
 
  delete word_2;
 
  std::cin.get();
  return 0;
  }
вот, для 2х байтового понятно! Сделала, а как это переделать для 4х? и как заменит word на unsigned int



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 18.03.2014 в 13:13.
elena1991 вне форума Ответить с цитированием
Старый 18.03.2014, 13:11   #4
elena1991
 
Регистрация: 18.03.2014
Сообщений: 7
По умолчанию

HELP ME!!!!!
elena1991 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу для работы с просматриваемой таблицей по запросу оператора Never_Die Общие вопросы C/C++ 0 06.05.2013 13:29
написать программу для работы с двумя очередями. sergey8100 Помощь студентам 0 18.03.2011 07:04
Написать программу для работы с очередью manik136 Помощь студентам 0 28.11.2010 18:48