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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kocmac
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 2
#1

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

04.06.2013, 23:07. Просмотров 517. Ответов 0
Метки нет (Все метки)

Напишите функцию 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++ unsigned char 0....255?!
C++ Совместимость char и unsigned char
C++ const char и unsigned char
Напишите функцию bool IsDigit(unsigned char c), определяющую, является ли данный символ цифрой или нет C++
C++ Напишите функцию с аргументом типа char*
Напишите функцию int GetLength(char* string), определяющую длину подаваемой на вход строки C++
C++ Передача в функцию unsigned char [ ]
C++ Std::fstream почему функция write принимает параметр char* а не unsigned char* (аля byte*) ?
C++ Приведение типов unsigned char[2] to unsigned char [64]
Типы данных - где нужно использовать char, а где unsigned char? C++
C++ Неверная конверсия из char* в unsigned char*

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

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

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