Форум программистов, компьютерный форум CyberForum.ru

двоичный код - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить длинну строки http://www.cyberforum.ru/cpp-beginners/thread177534.html
чё то моя конструкция ни фига не выдаёт #include <iostream> using namespace std; void main() { char a; int i=0; cout << "Enter your name: "; cin >>a; while (a)
C++ Реализовать алгоритм быстрой сортировки Реализовать алгоритм быстрой сортировки. Суть алгоритма: из исходного массива выбирается нулевой элемент, после чего массив разделяется на две группы так, чтобы слева от выбранного элемента в произвольном порядке располагались элементы меньшие или равные выбранному, а справа – бОльшие. Выбранный элемент должен располагаться между ними. Затем каждая группа сортируется по тому же алгоритму. http://www.cyberforum.ru/cpp-beginners/thread177533.html
Написать структуру у которой 2 целочисленных поля, объявить массив из 5 соответствующих структур C++
помогите пожалуйсто написать программу.очень надо. Написать структуру у которой 2 целочисленных поля,объявить массив из 5 соответствующих структур.Проинициализировать его,вывести на экран номер структуры суммы полей который максимальный.
Представление полей одного класса через другой C++
Задача следующего сожержания: Реализовать метод Bill. Для представлени использовать класс Time. реализовать методы извлечения и изменения полей. Время разговора, оторое нужно оплатить, высичляется в минутах. неполная минута считается полной" Класс Bill - это разовый платеж за телефонный разговор. класс должен содержать поля: - Фамилию абонента - Номер телефона - Тариф за минуту...
C++ Переменная окружения PATH http://www.cyberforum.ru/cpp-beginners/thread177509.html
напишите пожалуйста как будет выглядеть прога которая дополняет значение PATH именем каталога, указанным в командной строке Пишу на С.
C++ результат с заданой точностью три числа: a b c нужно вывести результат a/b с точностью c знаков ПОСЛЕ запятой подробнее

Показать сообщение отдельно
JerryJackson
50 / 6 / 1
Регистрация: 15.07.2010
Сообщений: 112
17.10.2010, 21:06     двоичный код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Написать программу на языке C++, читающую со стандартного ввода 4 деся-
тичных числа x, y,m, n. Все смещения будут указываться начиная с младшего
бита, начиная с 0.
В числах x, y младшие m из x заменить на старшие m бит из y, потом
инвертировать 5 младших бит в x.
Программа должна вывести все исходные данные в десятичном виде,
исходные и полученные значения x, y в двоичном виде в столбик, причём
справа от числа должно быть выведено имя соответствующей переменной.
В программе не должно быть более одного цикла. Не следует использовать
классы и библиотеки для работы с битовыми объектами. Рекомендуется не
изменять исходные переменные, следует определить выходные и временные
переменные. Программа должна быть корректной вне зависимости от коли-
чества бит в целом числе на данной архитектуре.

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream.h>
 
using namespace std;
void bit_print(int);
void bit_move(unsigned int,unsigned int,unsigned int);
void bit_invert(unsigned int);
 
 
int main()
{
    int x,y,m,n;
cout << "Input x" << endl;
cin >> x;
cout << "X=";
bit_print(x);
cout << endl;
cout << "Input y" << endl;
cin >> y;
cout << "Y=";
bit_print(y);
cout << endl;
cout << "Input m" << endl;
cin >> m;
cout << "M=";
bit_print(m);
cout << endl;
cout << "Input n" << endl;
cin >> n;
cout << "N=";
bit_print(n);
cout << endl;
cout << "Move bits X,M,Y=";
bit_move(x,m,y);
cout << endl;
cout << "Invert X=";
bit_invert(x);
cout << endl;
 
}
void bit_print(int a)
{
    int i;
    unsigned int maska;
    int s; 
    s=sizeof(int)*8;
    maska=1;
    maska = maska<<(s-1);
    for(int i=(sizeof(int)*8);i>0;i--)
    {
        if((a&maska)==maska)
            cout<<"1";
        else
            cout<<"0";
        maska>>=1;
    }
    
    return;
}
void bit_move(unsigned int m, unsigned int a, unsigned int b)
{
    
    unsigned int a1=0,b1=0,xy;
    b1=a<<(sizeof(int)*8-m);
    bit_print(b1);
    a1=b<<m;
    a1=a1>>m;
    bit_print(a1);
    xy=b1|a1;
    bit_print(xy);
    return;
}   
void bit_invert(unsigned int x)
{
    unsigned int a,b,b1,a1;
    a=x<<(sizeof(int)*8-5);
    bit_print(a);
    b=x>>9;
    bit_print(b);
 
    b=b<<9;
    bit_print(b);
    a1=~a;
    a1>>=(sizeof(int)*8-5);
    bit_print(a1);
    b1=b|a1;
    bit_print(b1);
}
 
Текущее время: 10:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru