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

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

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

16-битные числа - C++

07.10.2013, 20:26. Просмотров 796. Ответов 6
Метки нет (Все метки)

Данные два 16-битных числа A (aa. .. a) и B (bb. .. b), случайным образом выбирается точка разрыва t и получаем 2 числа (С1 и С2):
для первого числа биты от 0 до t берем из числа A, а другие с B;
для второго числа биты от 0 до t берем из числа В, а другие с А;
То есть, как в этом примере (для t = 5):
0 t 16 0 t 16
С1 = aaaaabbbbbbbbbbb и С2 = bbbbbaaaaaaaaaaa
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2013, 20:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 16-битные числа (C++):

64-х и 32-х битные системы - C++
Пишу в MSVS 2012 на Windows 8... интересует вопрос, почему программа не запускается на 32-х битных системах? Пишет данное приложение не...

[C++] 24-битные BMP - C++
Программа не хочет кодировать 24-битные BMP. Под кодированием я понимаю разбитие изображение на квадраты по 10 пикселей (в программе - по...

Битные маски - C++
Найти все натуральные числа k <50 такие, что выражение 2 * 36n + k * 23n +1 - 1 при всех n (n <5) делится на 7. Сформировать из найденных...

64 битные типы данных в devC++ - C++
здравствуйте уважаемые специалисты. Пишу программу на DevC++ и у меня возникла потребность в использовании 64 битного беззнакового целого...

Встроенный asm и 64-битные регистры - C++
Всем привет! Попробовал записать в 64-битный регистр ( R8 ) данные, на что студия ответила что не знает что это такое вообще. ...

Как преобразовать текст на 64-битные блоки - C++
Хочу разобраться в DES шифре. Помогите понять. Не могу разобраться, как представить текст в виде 64-битных блоках, для дальнейшего...

6
NanoBreaker
23 / 23 / 7
Регистрация: 11.07.2013
Сообщений: 89
07.10.2013, 20:51 #2
Для решения этой задачи используй библиотеку #include <bitset>
Как раз предназначена для работы с битами.

К примеру.

bitset<16> number; // Число из 16 битов, все нули.

Работать с number можно как с самым обычным массивом.
1
Sasha 93
2 / 2 / 0
Регистрация: 28.11.2012
Сообщений: 39
07.10.2013, 21:01  [ТС] #3
Цитата Сообщение от NanoBreaker Посмотреть сообщение
bitset<16> number; // Число из 16 битов, все нули.
Тоисть если
C++
1
bitset<16> а
то я получу при виводе рядок из шестнадцати символов "а"?
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
07.10.2013, 21:04 #4
а что операции & и | отменили?)
1
justDo
8 / 8 / 2
Регистрация: 06.10.2013
Сообщений: 19
07.10.2013, 21:10 #5
Sasha 93,
Надеюсь, суть понятна будет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <bitset>
 
int main()
{
    std::bitset<16> a[5] = {0, 1, 12, 5, 2};
    std::cout << a[3] << '\n';
 
    system("pause >> break");
    return 0;
}
 
// результат:
// 0000000000000101
0
NanoBreaker
23 / 23 / 7
Регистрация: 11.07.2013
Сообщений: 89
07.10.2013, 21:21 #6
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
#include <iostream>
#include <bitset>
#include <conio.h>
 
using namespace std;
 
int main()
{
    __int16 A = 0;
    __int16 B = 0;
    bitset<16> A_bs;
    bitset<16> B_bs;
    bitset<16> C1;
    bitset<16> C2;
    short int t = 0;
 
    cout << "Input A: "; cin >> A; A_bs = A;
    cout << "Input B: "; cin >> B; B_bs = B;
    cout << "Input t: "; cin >> t;
 
    for(int i = 0; i < 16; i++)
    {
        if(i < t){
            C1[i] = A_bs[i];
            C2[i] = B_bs[i];
        }else{
            C1[i] = B_bs[i];
            C2[i] = A_bs[i];
        }
    }
 
    for(int i = 0; i < 16; i++) cout << C1[i];
    cout << endl;
    for(int i = 0; i < 16; i++) cout << C2[i];
 
    getch();
    return 0;
}
Биты выводятся в обратном порядке, но я думаю с этим ты и сам разберешься.
1
Qwertiy
821 / 629 / 75
Регистрация: 20.08.2013
Сообщений: 2,524
08.10.2013, 13:05 #7
Цитата Сообщение от NanoBreaker Посмотреть сообщение
bitset<16> number; // Число из 16 битов, все нули.
Ну что за извращение? Всё же просто:
C++
1
unsigned short number = 0;
0
08.10.2013, 13:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2013, 13:05
Привет! Вот еще темы с ответами:

Разделить содержимое файла на 64 битные блоки - C++
помогите с программой на c++(задание по криптографии) ,нужно разделить содержимое файла на 64 битные блоки,для дальнейшего шифрования.как...

32-битные регистры в Borland C++ - C++
Всем доброго времени суток! Хочу сделать программу для проигрывания мелодии через системный динамик, и решил попробовать сделать это с...

Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми - C++
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми. ...

Что выгодней 64-битные или 32-битные программы - Программирование
Please, помогите разобраться с терминами, правильно ли я понимаю эти четыре термина: 32-битные процессоры не могут запускать 64-битные...


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

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

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