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

Не получается каждый байт переменной вывести побитно - C++

Восстановить пароль Регистрация
 
каддафи
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 91
30.12.2013, 08:38     Не получается каждый байт переменной вывести побитно #1
Здравствуйте. С помощью шаблонов, нужно разный тип переменной разбить на байты и каждый байт вывести по битам. . Насчет побитно разложить и вычислить сколько байт в переменной понятно как. Надо как то каждый байт переменной загнать в массив char и потом каждый элемент прогонять через функци. преобразования в биты (printbyte(p). Плохо понял эту тему с преобразовыванием и шаблонами, может подскажите как?

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
#include "iostream"
#include "time.h"
#include "iomanip"
 
using namespace std;
 
void printbyte(unsigned char x) ///funkciya razlojeniya pobitno
{
     for (int i=0; i<8; i++)
     {
         if (x& 0x80) cout<<1;
         else cout <<0;
         x=x<<1;
         }
         cout<<endl;
}
template <typename T> T print(T A)  // shablon funkcii
{
         cout<<sizeof(A)<<endl;
       //unsigned char *p = (unsigned char*) &A; 
unsigned char p=A;
cout<<(int)p<<endl;
   printbyte(p);  // zapusk funkcii razlojeniya pobitno
}
         
int main()
{
    int b=57;  // peremennaya kotoruy nujno razdelit pobaitam i razlojit pobitno, tip mojet bit ne tolko int
  print(b);
   
            
    system("pause");
    return 0;
}
Добавлено через 15 часов 41 минуту
ни кто не поможет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2013, 08:38     Не получается каждый байт переменной вывести побитно
Посмотрите здесь:

чёт никак не получается присвоить переменной букву! C++
C++ Количество байт в переменной
Присвоить переменной типа int содержимое четырёх байт из массива C++
C++ Определить, что старший байт числа равен значению переменной с
C++ Увеличить в файле каждый четный байт на единицу
Записать в файл побитно C++
Составить побитно байт из целочисленных чисел C++
C++ Подсчитать сколько раз встречается каждый байт файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.12.2013, 09:01     Не получается каждый байт переменной вывести побитно #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <time.h>
#include <iomanip>
 
using namespace std;
 
void printbyte(unsigned char x) ///funkciya razlojeniya pobitno
{
    for (int i=0; i<8; i++)
    {
        if (x& 0x80) cout<<1;
        else cout <<0;
        x=x<<1;
    }
    cout << endl;
}
template <typename T> void print(T A)  // shablon funkcii
{
    int n = sizeof(A);
    cout << n <<endl;
 
    unsigned char *p = (unsigned char*) &A; 
    //unsigned char p = A;
    //cout << (int)p << endl;
    for (int i = 0; i < n; ++i)
    {
        printbyte(*p);  // zapusk funkcii razlojeniya pobitno
        ++p;
    }
}
         
int main()
{
    int b = 57;  // peremennaya kotoruy nujno razdelit pobaitam i razlojit pobitno, tip mojet bit ne tolko int
    print(b);
    char ch = 'a';
    print(ch);
            
    system("pause");
    return 0;
}
каддафи
2 / 2 / 1
Регистрация: 02.10.2012
Сообщений: 91
30.12.2013, 13:25  [ТС]     Не получается каждый байт переменной вывести побитно #3
спасибо, работает как надо
Yandex
Объявления
30.12.2013, 13:25     Не получается каждый байт переменной вывести побитно
Ответ Создать тему
Опции темы

Текущее время: 20:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru