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

Операции с битами данных - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Текстовый архиватор http://www.cyberforum.ru/cpp-beginners/thread1480510.html
нужен ну очень простенький текстовый архиватор в консольке на c++ ,может кто помочь ,либо у кого-нибудь есть. Алгоритм либо Хаффмана,либо какой-нибудь свой - без разницы
C++ Сортировка матрицы по строкам. Появляется мусор в матрице через раз Здравствуйте. Столкнулся с такой вот проблемой. При сортировке матрицы по строчкам, у меня через раз в конечной отсортированной матрице появляется мусор в матрице на позициях некоторых элементов. Сортировку нужно осуществить с помощью Selection Sort. В чем может тут быть проблема? #include <iostream> #include <Windows.h> #include <assert.h> #include <fstream> http://www.cyberforum.ru/cpp-beginners/thread1480508.html
C++ Странный вывод оператором cout
Доброго времени суток. Написал код: #include <iostream> #include <typeinfo> #include <cxxabi.h> int main() { int* p = 0, a = 0,status=11; std::cout << status
Телефонный справочник города C++
Файл содержит телефонный справочник некоторого города по следующей структуре : каждая строка содержит телефон , фамилия , название улицы, номер дома , номер квартиры
C++ Ошибка этапа исполнения - переполнение стека http://www.cyberforum.ru/cpp-beginners/thread1480463.html
Помогите пожалуйста C++ написала программу она правильно работает, но при каждом запуске она выкидывает окно переполнение стека (Run-Time Check Failure #2 - Stack around the variable 'mas' was corrupted) как это можно исправить? Сам код: // ффффффффф.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv) {
C++ Вычислить значения функции заданной разложением в ряд Тейлора Для каждого х, изменяющегося от а до b с шагом h, найти значения функции Y(x), суммы S(x) и Y(x)-S(x) и вывести в виде таблицы. Значения а,b,h и n вводится с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента х (для тестовых значений исходных данных) должны совпадать в целой части в первых двух-четырех позициях... подробнее

Показать сообщение отдельно
RAFA91
Заблокирован
19.06.2015, 13:58  [ТС]     Операции с битами данных
Всем большое спасибо за советы !

Решил написать свои функции для работы с битами.

C++
1
2
3
4
5
bool Check_Bit(unsigned short,int); //проверка бита
 
void Bit_Set(unsigned short &,int); //установка бита
 
void Reset_Bit(unsigned short &,int);//сброс бита
но они у меня плохо работают. подскажите пожалуйста в чем ошибка ?

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
88
89
90
91
92
93
94
95
96
97
#include <iostream>
#include <conio.h>
 
 
using namespace std;
 
bool Check_Bit(unsigned short,int);
 
void Bit_Set(unsigned short &,int);
 
void Reset_Bit(unsigned short &,int);
 
int main()
 
{
    unsigned short x = 255;
 
    for(int i = 0; i < 16; i++)
 
    {
        if (Check_Bit(x,i)) cout << "\nBit "<< i << " - 1\n";
        
        else cout << "\nBit "<< i << " - 0\n";
 
    }
 
    cout << "\n***********************\n";
 
    Bit_Set(x,15);
 
    for(i = 0; i < 16; i++)
 
    {
        if (Check_Bit(x,i)) cout << "\nBit "<< i << " - 1\n";
        
        else cout << "\nBit "<< i << " - 0\n";
 
    }
 
    cout << "\n++++++++++++++++++++++++++++\n";
 
    Reset_Bit(x,0);
 
    for(i = 0; i < 16; i++)
 
    {
        if (Check_Bit(x,i)) cout << "\nBit "<< i << " - 1\n";
        
        else cout << "\nBit "<< i << " - 0\n";
 
    }
    
    getch();
 
    return 0;
}
 
 
bool Check_Bit(unsigned short x, int n)
 
{
    unsigned short k = 1;
 
    for(int i = 0; i < n; i++)
        
    k *= 2;
    
    x = x & k;
    
    return (x == k) ? true : false;
}
 
void Bit_Set(unsigned short &x, int n)
 
{
    unsigned short k = 1;
 
    for(int i = 0; i < n; i++)
        
    k *= 2;
 
    x = x | k;
}
 
void Reset_Bit(unsigned short &x, int n)
 
{
    unsigned short k = 1;
    
    for(int i = 0; i < n; i++)
        
    k *= 2;
 
    k = ~k;
 
    x = x & k;
}
 
Текущее время: 07:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru