0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 7
1

Массив: Определить размер и значения элементов заданного массива в десятичной системе

20.08.2020, 20:43. Показов 959. Ответов 12
Метки нет (Все метки)

Пусть имеется массив элементов типа иnsignedint16_t, которому в
оперативной памяти компьютера соответствует следующая
последовательность байт:01101000 10010011 10010010 10000101 11001011
001001000 01110101 11011100. Определить размер и значения элементов этого массива
в десятичной системе
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2020, 20:43
Ответы с готовыми решениями:

Отсортировать массив А по возрастанию значения младшего разряда числа (в десятичной системе)
Добрый день. подскажите пожалуйста как переделать код, чтобы была сортировка массив А по...

Определить количество элементов массива меньших заданного значения
Здравствуйте, помогите пожалуйста выполнить задание: В одномерном массиве, состоящем из n...

Дан массив А(Н,М). Найти среднее ариф.элементов массива, значения которых меньше заданного, в каждом столбце массива
Правильно вычисляет только ср. арифметическое первого столбца. В чем ошибка? #include <iostream>...

Дан массив из n элементов. Определить, сколько элементов массива меньше заданного числа
Дан массив из n элементов. Определить, сколько элементов массива меньше заданного числа.

12
1006 / 692 / 310
Регистрация: 26.02.2015
Сообщений: 3,152
20.08.2020, 20:48 2
4 значения: 26771, 37509, 104008, 30172
0
1697 / 899 / 368
Регистрация: 11.10.2018
Сообщений: 4,716
20.08.2020, 20:48 3
Ну размер-то 2 байта беззнаковое число.
Так нужно алгоритм Вам рассказать или готовое решение?
0
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 7
20.08.2020, 20:52  [ТС] 4
Алгоритм напишите , пожалуйста
0
4173 / 2378 / 992
Регистрация: 07.02.2019
Сообщений: 6,212
20.08.2020, 21:04 5
Цитата Сообщение от Nishen Посмотреть сообщение
4 значения: 26771, 37509, 104008, 30172
это если big-endian
1
262 / 181 / 87
Регистрация: 03.05.2020
Сообщений: 790
20.08.2020, 21:05 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    char b[]="01101000100100111001001010000101110010110010010000111010111011100";
    unsigned char m=0,*p=0;
    int n=0;
    for(int i=0; i<(int)strlen(b); i++)
    {
        if(!i || !m)
        {
            p=(unsigned char*)realloc(p,(n+1)*sizeof(char));
            p[n]=0;
            m=0x80;
        }
        if(b[i]=='1') p[n]|=m;
        if(!(m>>=1)) n++;
    }
    n/=2;
    unsigned short *a=(unsigned short*)p;
    for(int i=0; i<n; i++)
        cout<<a[i]<<" ";
    cout<<endl;
    free(p);
1
1697 / 899 / 368
Регистрация: 11.10.2018
Сообщений: 4,716
20.08.2020, 21:15 7
Лучший ответ Сообщение было отмечено Otaku как решение

Решение

Цитата Сообщение от Otaku Посмотреть сообщение
01101000 10010011
- там где 1 определяете справа налево от 0 вот так
0 1 1 0 1 0 0 0 - 1 0 0 1 0 0 1 1
15 14 13 12 11 10 9 8 - 7 6 5 4 3 2 1 0
Ну типа тут биты и их номера.
Это степени 2.
Там где 1 возводите 2 в эту степень и прибавляете к общей сумме. Эта общая сумма и будет число.
214 + 213 + 211 + 27 + 24 + 21 + 20 =
16384 + 8192 + 2048 + 128 + 16 + 2 + 1 =
26771.
0
1006 / 692 / 310
Регистрация: 26.02.2015
Сообщений: 3,152
20.08.2020, 21:24 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bitset>
#include <iostream>
 
 
 
int main() {
 
    std::string text{ "01101000100100111001001010000101110010110010010000111010111011100" };
    const std::size_t count = sizeof(uint16_t) * CHAR_BIT;
    const std::size_t number = text.size() / count;
 
 
    for (std::size_t i = 0; i < number; ++i) {
 
        std::bitset<count> bits(text, count * i, count);
 
        std::cout << bits.to_ulong() << '\n';
 
    }
 
    return 0;
 
}
0
262 / 181 / 87
Регистрация: 03.05.2020
Сообщений: 790
20.08.2020, 21:46 9
Цитата Сообщение от Otaku Посмотреть сообщение
следующая последовательность байт:01101000 10010011 ...
=37736 ...
0
4173 / 2378 / 992
Регистрация: 07.02.2019
Сообщений: 6,212
20.08.2020, 21:52 10
Цитата Сообщение от AnyKey Посмотреть сообщение
=37736
это если little-endian
0
1006 / 692 / 310
Регистрация: 26.02.2015
Сообщений: 3,152
20.08.2020, 21:55 11
Снова я невнимательно прочитал задание.
0
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 7
20.08.2020, 22:15  [ТС] 12
А если бы был тип данных unsigned int то было бы 8 значений?
0
262 / 181 / 87
Регистрация: 03.05.2020
Сообщений: 790
20.08.2020, 22:20 13
два
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2020, 22:20

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Определить количество элементов массива квадрат которых больше заданного значения
Ввести двумерный массив . Определить в нём количество элементов, квадрат которых больше 25. ...

Определить количество элементов массива значения которых больше заданного числа
Одномерный массив из 12 элементов заполнить числовыми значениями. Ввести число К. Определить...

Определить количество элементов массива квадрат которых больше заданного значения
помогите пожалуйста написать листинг программы Ввести двумерный массив А(3*4) . Определить в нём...

Дан массив из N элементов. Определить, сколько элементов массива больше заданного числа (константы)
Дан массив из N элементов. Определить, сколько элементов массива больше заданного числа(константы)

Определить значения и позиции последних двух чётных элементов заданного одномерного массива
Задан одномерный массив D. Определить значения и позиции, последних двух чётных элементов заданного...

Определить значения и позиции, последних двух чётных элементов заданного одномерного массива
Пожалуйста помогите срочно! Нужно сделать задание срочно! Задан одномерный массив D. Определить...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.