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

Запись четырехсимвольных констант в int - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не работает getch() http://www.cyberforum.ru/cpp-beginners/thread659058.html
не работает задержка по getchar() #include <iostream> #include <cstdlib> #include <time.h> #include <cstdio> #include <unistd.h> using namespace std;
C++ возвращаемые значения функции шаблонного класса A и A<T> первый листинг template <typename T> class A { public: T a; A& f() http://www.cyberforum.ru/cpp-beginners/thread659044.html
C++ Хороший тон программирования
Можно ли считать хорошим тоном в программировании? Например вот такой вот код? #define FOR for(int a=0;a<10;a++) ........ FOR { cout<<a<<'\n'; }
C++ Изменение отдельных символов в массиве "std::string"
Добрых времени суток, форумчане! Я тут решил переписать свой криптовальщик с GML на C++ и у меня возникла следующая проблема: мне нужно в массиве "std::string" изменить 1 символ, например: #include <iostream> int main() { std::string i; i="Hello"; std::cout<<"Default string: "<<i<<endl; for (int x=0; x<i.size(); x+=1) {if (i=='H')
C++ Снова задача про ход коня http://www.cyberforum.ru/cpp-beginners/thread659012.html
Здравствуйте. Задача: рекурсивно обойти шахматную доску конем (программа просто выводит один вариант решения, без дополнительных наворотов, первый ход делается случайным образом, после каждого хода экран перерисовывается). Подскажите, пожалуйста, как нужно исправить код, чтобы функция находила решение. Сейчас поиск происходит бесконечно. Знаю, что задача поднималась уже много раз и в сети полно...
C++ C++ DLL for C# entry point heared -> #ifndef _DLLTEST_H_ #define _DLLTEST_H_ #include <string> using namespace std; extern "C" __declspec(dllexport) string f1(string); #endif подробнее

Показать сообщение отдельно
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
27.09.2012, 16:39
something like this
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
98
99
#include <iostream>
 
template<class T>
void printBin(const T &obj, std::ostream& os = std::cout, char spacing = '\0');
 
template<class T>
void ptrPrintBin(const T* dPtr, size_t len, std::ostream& os = std::cout, char spacing = '\0');
 
int convertToInt(const char* src);
int rConvertToInt(const char* src);
 
int main()
{
    const char *str = "abcd";
    std::cout<<"Binary representation of string bytes:\n";
    ptrPrintBin(str, strlen(str), std::cout, '.');
 
    int frst = convertToInt(str);
    std::cout<<"Binary representation of the first int:\n";
    printBin(frst, std::cout, '.');
 
    std::cout<<"Binary representation of the second int:\n";
    int scnd = rConvertToInt(str);
    printBin(scnd, std::cout, '.');
}
 
template<class T>
void printBin(const T &obj, std::ostream& os, char spacing)
{
    const unsigned char* ptr = reinterpret_cast<const unsigned char*>(&obj);
    const size_t bytes = sizeof(T);
    for(size_t i = 0; i < bytes; ++i)
    {
        printBin(ptr[i], os);
        if (spacing && i != (bytes - 1))
        {
            os << spacing;
        }
        else
        {
            os << std::endl;
        }
    }
}
 
template<>
void printBin<unsigned char>(const unsigned char &ch, std::ostream& os, char spacing)
{
    for(int i = 7; i >= 0; --i)
    {
        os << ((ch & (1 << i))? 1: 0);
    }
}
 
template<class T>
void ptrPrintBin(const T* dPtr, size_t len, std::ostream& os, char spacing)
{
    if (dPtr == NULL)
        return;
    const unsigned char* ptr = reinterpret_cast<const unsigned char*>(dPtr);
    const size_t bytesT = sizeof(T);
    const size_t bytes = bytesT * len;
    for(size_t i = 0; i < bytes; ++i)
    {
        printBin(ptr[i], os);
        if (spacing && i != (bytes - 1))
        {
            os << spacing;
        }
        else
        {
            os << std::endl;
        }
    }
}
 
int convertToInt(const char* src)
{
    const unsigned char *uchar_ptr = reinterpret_cast<const unsigned char*>(src);
    size_t szInt = sizeof(int);
    unsigned int cInt = 0;
    for(size_t i = 0; i < szInt; ++i)
    {
        cInt += (uchar_ptr[i] << (i * 8));
    }
    return cInt;
}
 
int rConvertToInt(const char* src)
{
    const unsigned char *uchar_ptr = reinterpret_cast<const unsigned char*>(src);
    size_t szInt = sizeof(int);
    unsigned int cInt = 0;
    for(size_t i = 0; i < szInt; ++i)
    {
        cInt += (uchar_ptr[i] << ((szInt - 1 - i) * 8));
    }
    return cInt;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru