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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача на очередь http://www.cyberforum.ru/cpp-beginners/thread891418.html
Задача звучит так: В больницу приходят определенное кол-во больных, тяжело больные обслуживаются в первую очередь, затем - легко. Тяжело больные обслуживаются 20 - 30 мин, а легко - 10 -20 мин. С экрана вводится номер больного (по счету как они приходили). Вывести на экран сколько времени затратил этот больной. Очень интересно как можно реализовать в С++? =(( Склоняюсь к тому, что надо...
C++ курсач с интегралом.разными методами код есть но не совсем рабочий просьба посмотреть может что подскажите дельного:)буду очень благодарна интеграл вида sin ^3 х dx от 0 до п/2 #include "stdafx.h" #include "stdio.h" #include "math.h" void func_5(float a, float b, int n, float eps) { int i; float h,x,I0,I1; http://www.cyberforum.ru/cpp-beginners/thread891412.html
C++ Массив: Поменять местами последний столбец со столбцом, содержащим наибольшее по абсолютной величине элемент матрицы.
В матриці з дійсних чисел поміняти місцями останній стовпець зі стовпцем, що містить найбільший за абсолютною величиною елемент матриці. В матрице из действительных чисел поменять местами последний столбец со столбцом, содержащим наибольшее по абсолютной величине элемент матрицы. Как сделать ? :wall: Официальный язык форума - русский
C++ Блок-схемы
Формумчане, у меня нестандартный вопрос: кто-нибудь из вас может мне помочь в составлении блок-схем к программам? Необходимо это для зачета. Программы есть, а вот с составлением схем у меня проблемы. Если нужно будет, могу скинуть задания.
C++ как можно сделать покрасивее? http://www.cyberforum.ru/cpp-beginners/thread891384.html
/Задание. Разделение массива на несколько Дан массив i состоящий из n чисел типа int (случайное равномерное заполнение выполняется программой), n=10. Произвести сохранение всех элементов массива i в элементах 4-х массивов типа char (массивы a,b,c,d). Например, число int состоит из 32 бит (4 байт). Первый байт элемента i следует сохранить в массиве a с соответствующим индексом элемента...
C++ Как найти локальные максимумы? Подскажите пожалуйста как найти локальные максимумы?? подробнее

Показать сообщение отдельно
Kocmac
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 2
04.06.2013, 23:07     Напишите функцию printbyte(unsigned char x)
Напишите функцию 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;
}
заранее Спасибо за помощь!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru