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

Напишите функцию printbyte(unsigned char x) - C++

Восстановить пароль Регистрация
 
Kocmac
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 2
04.06.2013, 23:07     Напишите функцию printbyte(unsigned char x) #1
Напишите функцию printbyte(unsigned char x) (можно использовать из примера в материале), печатающую данный байт побитово. Реализуйте шаблон
template <typename T> print (T A)
который печатает переменную A данного типа T побитно. В шаблоне print объявите переменную p типа unsigned char * и сделайте так, чтобы она указывала на переменную A, для чего потребуется сделать явное преобразование типов:
unsigned char *p = (unsigned char *) &A;

Теперь, p[0] будет первым байтом переменной A, p[1] – следующим байтом и т.д. Значение каждого байта необходимо напечатать при помощи функции printbyte. Ну а общее количество байт в переменной A равно sizeof(A).

Напишите функцию main, которая будет для некоторого типа считывать значение переменной данного типа и выводить его на экран побайтно при помощи шаблона print. Например, print( (short) 1) должен вывести 00000001 00000000, а print( (int) 1) должен вывести 00000001 00000000 00000000 00000000.

Проведите эксперименты с различными типами данных с целью выяснения, как они хранятся в памяти. Начните с простых: unsigned char, unsigned short, unsigned int. Как записываются числа 0, 1, 2, 3? Какое наибольшее число можно записать в этих типах?


Вот дан пример
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
#include <iostream>
using namespace std;
 
void print_by_bit(unsigned char b)
{
     for(int i=0; i<8; i++)
     {
         if (b & 0x80) cout << 1;
         else cout << 0;
         b = b << 1;
     }
     cout << endl;
}
 
int main ()
{
    unsigned char a;
    a=5; // 00000101
    cout << (int)a << endl;
    print_by_bit(a);
    
    system("pause");
    return 0;
}
заранее Спасибо за помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2013, 23:07     Напишите функцию printbyte(unsigned char x)
Посмотрите здесь:

C++ Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию
C++ Совместимость char и unsigned char
C++ const char и unsigned char
Напишите функцию bool IsDigit(unsigned char c), определяющую, является ли данный символ цифрой или нет C++
C++ Напишите функцию с аргументом типа char*
C++ Передача в функцию unsigned char [ ]
C++ Std::fstream почему функция write принимает параметр char* а не unsigned char* (аля byte*) ?
C++ Приведение типов unsigned char[2] to unsigned char [64]

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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