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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2015, 18:37   #1
Некий Молла
 
Регистрация: 29.11.2015
Сообщений: 5
Восклицание Необходимо установить бит

Ввести последовательность из 8 целых чисел. В каждом втором числе заменить ( i-1)-й бит единицей, где i-номер члена последовательности.
Вывести исходную последовательность, ее восьмеричные и двоичные коды; пребразованную последовательность и ее восьмеричные и двоичные коды.
Некий Молла вне форума Ответить с цитированием
Старый 29.11.2015, 19:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Твои попытки увидеть можно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.11.2015, 13:50   #3
Некий Молла
 
Регистрация: 29.11.2015
Сообщений: 5
По умолчанию

Конечно можно. Но они практически абсолютно неправильные.

Код:
#include<graphics.h>
#include<stdlib.h>
#include<stdio.h>
#include<iostream.h>
#include<math.h>
#include<conio.h>
#define CLIP_ON 1
#define N 600

void main ()
{
   clrscr();
   int i,n;
   char abort=0;
   while (!abort)
   {
      const char mask1=n;
      char str[9];
      cout<<"\n‚Ввести последовательность из 8 целых чисел. В каждом втором числе заменить ( i-1)-й бит единицей, где i-номер члена последовательности. 
Вывести исходную последовательность, ее восьмеричные и двоичные коды; пребразованную последовательность и ее восьмеричные и двоичные коды.";
      for (i=0; i<8; i++)
      cin>>str[i];
      for (i=0; i<8; i++)
      {
	 n=i;
	 cout<<" исходный код "<< i<<"-го символа= "<< str[i];
	 cout<<"      код символа в 8-й системе = "<<oct<<(int)str[i]<<endl;
	 if (i%2)
	 str[i]=str[i]|mask1;
	 cout<<" преобразованный код символа= "<< str[i]<<" ";
	 cout<<"   код символа в 8-й системе= "<<oct<<(int)str[i]<<endl;
      }
      char ch;
      cout<<" \nдля повторного расчета нажмите Enter для выхода нажмите Esc...";
      do
      {
	 ch=getch();
      }
      while (ch!=13&& ch!=27);
      if(ch !=13) abort=1;
      clrscr();
   }
   getch();
}
Некий Молла вне форума Ответить с цитированием
Старый 30.11.2015, 15:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
 
     for (i=0,mask1=1; i<8; i++)
      {
	 n=i;
	 cout<<" исходный код "<< i<<"-го символа= "<< str[i];
	 cout<<"      код символа в 8-й системе = "<<oct<<(int)str[i]<<endl;
	 if (i%2) 	 str[i]=str[i]|mask1; mask1<<=1;
	 cout<<" преобразованный код символа= "<< str[i]<<" ";
	 cout<<"   код символа в 8-й системе= "<<oct<<(int)str[i]<<endl;
      }
Так сойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2015, 11:29   #5
Некий Молла
 
Регистрация: 29.11.2015
Сообщений: 5
По умолчанию

К сожалению, не компилирует. Ошибка "cannot modify a const object"

ошибку находит в этой строке
Код:
for (i=0,mask1=1; i<8; i++)
Некий Молла вне форума Ответить с цитированием
Старый 02.12.2015, 12:49   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну так убери из const char mask1=n; слово const.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2015, 22:30   #7
Некий Молла
 
Регистрация: 29.11.2015
Сообщений: 5
По умолчанию

Действительно. Чайник же) Ну, тем не менее программа работает неправильно. Необходимо чтобы менялся бит (i-1) где i - номер последовательности. То есть нужно чтобы в первом члене менялся нулевой бит, в третьем второй и т.д. А в данной программе меняется всегда нулевой бит (крайний правый) вот для наглядности

Двоичная СС Шестнадцатеричная СС
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

Надеюсь, что Вы поможете мне.
Некий Молла вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
32 бит в 16 alexey_kip Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 14 03.11.2013 18:27
ОС: 32 vs 64 бит Буратино Операционные системы общие вопросы 29 18.01.2011 11:10
Ковертирование из png 24 бит в png 8 бит isat Общие вопросы .NET 0 22.03.2010 13:38
Как установить i-й бит целого числа qwerty09 Общие вопросы C/C++ 4 09.07.2009 00:20
Необходимо установить Cookie Никки JavaScript, Ajax 1 09.03.2008 02:17