20 / 16 / 11
Регистрация: 07.12.2013
Сообщений: 244
1

Битовые операции

27.02.2014, 10:29. Показов 722. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Битовые операции


Собсно,если используется 4 байтовая переменная,то почему она представлена 16 битами(1010 0110 0010 0110),а не 32 битами?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2014, 10:29
Ответы с готовыми решениями:

Битовые операции, битовые поля.
Здравствуйте! Еслть 4 диапазона чисел: 0-100, 0-100, 0-6000, 0-3. Сделать в виде битовых операций....

Битовые операции и операции смещения языка С
Доброго времени суток господа,помогите пожалуйста.Есть 2 кода к задаче,первый работает...

Битовые операции
С помощью битовых операций выести на экран значение к-ого спарва бита. Помогите пожалуйста!что-то...

Битовые операции
Добрый день! Помогите пожалуйста написать программу. Дано короткое целое неотрицательное...

12
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
27.02.2014, 10:39 2
для экономии чернил и места
1
20 / 16 / 11
Регистрация: 07.12.2013
Сообщений: 244
27.02.2014, 10:54  [ТС] 3
Jupiter, что-то я не понял,как вывести результат операции на консоль.

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main()
{  
 
    1111000011110000 
    | 
    0000000000000001;
 
    system("pause");
}
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
27.02.2014, 11:06 4
Цитата Сообщение от Игорюня Посмотреть сообщение
что-то я не понял,как вывести результат операции на консоль.
в коде с++ нельзя задать число литерал в двоичном виде
1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.02.2014, 11:24 5
Цитата Сообщение от Jupiter Посмотреть сообщение
в коде с++ нельзя задать число литерал в двоичном виде
Вообще-то можно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int operator"" b(const char* s)
{
    int ret = 0;
    while(s && *s)  
    {
        ret <<= 1;
        ret |= *s++ == '1' ? 1 : 0;
    }
    return ret;
}
 
int main() {
    
    std::cout << 0110b << std::endl; 
    
    return 0;
}
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
27.02.2014, 11:54 6
Цитата Сообщение от Tulosba Посмотреть сообщение
Вообще-то можно
А что у вас за среда, я постесняюсь спросить?
Моя не позволяет перегружать все подряд.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.02.2014, 11:58 7
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А что у вас за среда, я постесняюсь спросить?
C++11. Проверить можно на ideone.com например.
1
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
27.02.2014, 12:49 8
Цитата Сообщение от Tulosba Посмотреть сообщение
Вообще-то можно:
говоря "в коде на С++" я имею ввиду поддержку на уровне компилятора
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.02.2014, 12:52 9
Jupiter, так это и есть поддержка на уровне компилятора, поддержка пользовательских литералов. Другое дело, что встроенного литерала нет
0
gray_fox
27.02.2014, 13:00
  #10

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Вообще-то можно:
Ну вот, пользовательский литерал, не начинающийся с _ )

0
Tulosba
27.02.2014, 13:08
  #11

Не по теме:

Цитата Сообщение от gray_fox Посмотреть сообщение
Ну вот, пользовательский литерал, не начинающийся с _ )
Знаю. Ворнинги пишет. Посмотрим, сделают ли в C++14 ошибкой :)

0
Модератор
Эксперт по электронике
8931 / 6698 / 920
Регистрация: 14.02.2011
Сообщений: 23,602
27.02.2014, 13:09 12
Цитата Сообщение от Игорюня Посмотреть сообщение
Jupiter, что-то я не понял,как вывести результат операции на консоль.
ну если не брать перегрузку, ту что привел Tulosba,
то переводи из двоичного в десятичный/шестнадцатеричный обрабатывай и обратно
например как из строки получить число
C++
1
2
3
4
5
6
7
8
9
 int IntToBin(char* str)
{
int res=0;
for( i=0;str[i]!='\0';i++)
{
  res*=2;
  res+=str[i]-'0'; 
 }
}
но функция не проверяет на допустимость символов
0
19246 / 10005 / 2434
Регистрация: 30.01.2014
Сообщений: 17,639
27.02.2014, 13:52 13
Tulosba, если позволите, вот версия без рантайм циклов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
template <char first, char... bits>
struct bin_conv
{
    enum
    {
        value = bin_conv<first>::value * (1 << sizeof...(bits)) + bin_conv<bits...>::value
    };
};
template <char first>
struct bin_conv<first>
{
    static_assert(first == '0' || first == '1', "not a binary number");
    enum
    {
        value = first - '0'
    };
};
 
template <char... digits>
constexpr int operator "" b()
{
    return bin_conv<digits...>::value;
}
1
27.02.2014, 13:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2014, 13:52
Помогаю со студенческими работами здесь

Битовые операции
Доброго времени суток . Вот такая вот задачка : в числе А установить в единицу n битов влево от...

Битовые операции
Доброго времени суток! Помогите решить задачу на тему &quot;Битовые операции&quot;: Ввести четыре целых...

Битовые операции
Приветствую! Изучаю C++, не могу освоить битовые операции (перемещение, исключающие или,...

Битовые операции
Народ дайте ссылку пожалуйста на задачи по сишке где нужно использовать битовые операции!...


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

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

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