С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
16 / 16 / 12
Регистрация: 10.11.2012
Сообщений: 245
1

Количество байт в переменной

09.06.2013, 17:14. Показов 4702. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста мне разобраться как сделать чтобы общее количество байт в переменной A равно sizeof(A).
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
#include <iostream>
 
using namespace std;
 
template <class T>
void print(T a)
{
 
     unsigned char p = (unsigned char)a;
     
     
     cout << "Your number of bites";
     
     for(int i=0; i<8; i++)
     {
         if (p & 0x80) cout << 1;
         else cout << 0;
         p = p << 1;
     }
     cout << endl;
 
}
 
int printbyte()
{
    int b;
    cout <<"Input number:";
    cin >> b;
    cout << (int)b << endl;
    
    int a = sizeof (a);
    cout << "enter a";
    cin >> a;
    
    print <int> (b);
    
    return(0);
}
 
int main()
{
    printbyte();
 
    
    system("pause");
    return 0;
}
Добавлено через 1 час 21 минуту
Ладно, так наверно не очень понятно, я скину всё задание.

Напишите функцию 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.


Я остановился на sizeof если кто знает подскажите.

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
#include <iostream>
 
using namespace std;
 
template <class T>
void print(T a)
{
 
     unsigned char p = (unsigned char)a;
     
     cout << endl;
     cout << "Your number of bites";
     
     for(int i=0; i<8; i++)
     {
         if (p & 0x80) cout << 1;
         else cout << 0;
         p = p << 1;
     }
     cout << endl;
 
}
 
int printbyte()
{
    int b;
    cout <<"Input number:";
    cin >> b;
    
    int a = sizeof (a);
    cout << a;
    
    print <int> (b);
    
    return(0);
}
 
int main()
{
    printbyte();
 
    
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2013, 17:14
Ответы с готовыми решениями:

Количество байт занимаемое переменной
В случае с с2+0, потребляются ли 3 байта? И как сделать вывод без приведения типов, чтобы не...

Посчитать в файле количество нулевых байт и различных байт
Посчитать в файле кол-во нулевых байт и различных байт Кто решит буду весьма благодарен!:drink:

Порядок байт у числовой переменной
Здравствуйте. Можно ли как то указать у числовой переменной чтоб байты у нее должны быть little...

Не получается каждый байт переменной вывести побитно
Здравствуйте. С помощью шаблонов, нужно разный тип переменной разбить на байты и каждый байт...

6
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
09.06.2013, 18:33 2

Не по теме:

Цитата Сообщение от mster-doc Посмотреть сообщение
cout << "Your number of bites";
Ахаха~

C++
1
2
3
4
5
6
7
8
template <class T>
void print(const T &x)
{
        const unsigned *ptr = reinterpret_cast<const unsigned*>(&x);
        for (int i = 0; i < sizeof(T); i++) {
                // напечатать ptr[i] как надо
        }
}
1
16 / 16 / 12
Регистрация: 10.11.2012
Сообщений: 245
09.06.2013, 18:59  [ТС] 3
В моём коде sizeof как то неправильно отображает. Если а int тогда показывает 4, а если беру к примеру char, short, тогда программа смайлик рисует
0
ARRAYBOW
03.01.2024, 19:42
  #4

Не по теме:

Просто она счастливая

0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
03.01.2024, 19:47 5
mster-doc, программу показывай.
0
Вездепух
Эксперт CЭксперт С++
12792 / 6669 / 1795
Регистрация: 18.10.2014
Сообщений: 16,870
03.01.2024, 21:31 6
Цитата Сообщение от mster-doc Посмотреть сообщение
В моём коде sizeof как то неправильно отображает.
sizeof ничего никогда не отображает.

Цитата Сообщение от mster-doc Посмотреть сообщение
Если а int тогда показывает 4, а если беру к примеру char, short, тогда программа смайлик рисует
Так а что это такое:

Цитата Сообщение от mster-doc Посмотреть сообщение
int a = sizeof (a);
В чем тут идея? Почему sizeof (a) кладется в само a? В чем смысл использования одной и той же переменной?
0
Неэпический
18107 / 10694 / 2062
Регистрация: 27.09.2012
Сообщений: 26,927
Записей в блоге: 1
04.01.2024, 07:50 7
P.S. теме более 10-ти лет
0
04.01.2024, 07:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2024, 07:50
Помогаю со студенческими работами здесь

Определить, что старший байт числа равен значению переменной с
Вот такое задание.... Буду рада хотя бы алгоритму выполнения. Дана переменная char c. Напишите...

Присвоить переменной типа int содержимое четырёх байт из массива
Есть массив байт. Нужно выбрать из него четыре байта подряд (например, со второго по пятый) и...

Посчитать количество двоичных единиц переменной 8 байт
Всем привет. Такой вопрос, мне задали задание посчитать количество двоичных единиц переменной 8...

Дан массив из 10 байт. Посчитать количество байт, в которых сброшены 6 и 4 биты
Дан массив из 10 байт. Посчитать количество байт,в которых сброшены 6 и 4 биты. Массив байтов...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru