Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 1
Регистрация: 22.11.2014
Сообщений: 46

Побитовые операции - исправить ошибки в коде

04.10.2015, 18:55. Показов 628. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 2 программы: фактически 1 кодирует числа в 16-ричное слово, 2 делает все наоборот: декодирует слово в числа.
1 программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "math.h"
#include 
using namespace std;
 
unsigned char c,f,d;
unsigned char n;
unsigned int UnitStateWord; 
int _tmain(int argc, _TCHAR* argv[])
{ 
 
printf_s("vvod koda(0-15)>");
scanf_s("%d",&c);
printf_s("vvod obzn(0,1)>");
scanf_s("%d",&f);
printf_s("vvod obzn 2(0,1)>");
scanf_s("%d",&d);
printf_s("vvod kol(0-511)>");
scanf_s("%d",&n);
UnitStateWord=((unsigned char)c& 0xF)<<11;
UnitStateWord|=((unsigned char)f & 1)<<10;
UnitStateWord|=((unsigned char)d & 1)<<9;
UnitStateWord|=n&0x1FF;
printf_s("\n 16 slovo = %04x\n",UnitStateWord);
system("pause");
return 0;
}
2 программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "stdafx.h"
#include "iostream"
#include "stdio.h"
#include "conio.h"
 
using namespace std;
unsigned char c,f,d;
unsigned char n;
unsigned int UnitStateWord; 
int _tmain(int argc, _TCHAR* argv[])
{ 
printf_s("\n vvod 16 slova = %04x \n",UnitStateWord);
scanf_s("%04x",&UnitStateWord);
c=(UnitStateWord>>11)&0xF;
f=(UnitStateWord>>10)&1;
d=(UnitStateWord>>9)&1;
n=UnitStateWord& 0x1FF;
 
printf_s("kod = %d\n",c);
printf_s("obzn = %d\n",f);
printf_s("obzn 2 = %d\n",d);
printf_s("kol = %d\n",n);
system("pause");
return 0;
}
1 программа работает нормально, но вот 2: переменные c, f, d выводит нормально но вот переменную n - неправильно - оно выводит разницу числа, которое я ввожу, от 256, то есть, то, что я ввожу-256(это если вводить числа, больше 256). з числами до 256 работает нормально.

Добавлено через 12 минут
неактуально.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.10.2015, 18:55
Ответы с готовыми решениями:

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

Ошибки при компиляции - исправить ошибки в коде
Помогите исправить ошибки , не понимаю в чем может быть причина ... #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include...

Найти ошибки в коде и исправить эти ошибки
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.10.2015, 18:55
Помогаю со студенческими работами здесь

Найти ошибки в коде и исправить эти ошибки - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

Исправить ошибки в коде.
Пожалуйста помогите исправить ошибки. 1 Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла 2. Встречено '.', а...

Исправить ошибки в коде
Как здесь сделать правильное объявление? void Gauss(float X, float A, unsigned N, unsigned M) // cвободные члены { double **a1 =...

исправить ошибки в коде
Помогите и исправьте ошибки в моём коде. Буду очень благодарен. Ссылка на условие задачи: ...

Исправить ошибки в коде
#include &lt;stdio.h&gt; int N,M; int a; int KP,KV; int o,oN,t; int i,j; void next(int x){ if (x==1){


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru