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

Двоичные константы (вопрос ради интереса) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.78
darkAngel
Технофашист
211 / 192 / 4
Регистрация: 11.03.2009
Сообщений: 850
17.02.2011, 23:50     Двоичные константы (вопрос ради интереса) #1
Интересна причина, почему нет возможности задавать именно двоичные.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2011, 23:50     Двоичные константы (вопрос ради интереса)
Посмотрите здесь:

Двоичные деревья! C++ Builder
Структуры данных и двоичные файлы C++
C++ Задача на двоичные файлы!
двоичные файлы,чтение\запись C++
двоичные файлы C++
Двоичные файлы C++
двоичные файлы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,888
18.02.2011, 00:01     Двоичные константы (вопрос ради интереса) #2
Нет необходимости ) С шестнадцатиричными константами работать не сложнее и они намного менее громоздки.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
18.02.2011, 00:05     Двоичные константы (вопрос ради интереса) #3
в асме например можно, но для целей си этого как сказал rangerx не нужно
единственное применение могло быть - решение лабораторных задачек на форуме :-)
darkAngel
Технофашист
211 / 192 / 4
Регистрация: 11.03.2009
Сообщений: 850
18.02.2011, 00:09  [ТС]     Двоичные константы (вопрос ради интереса) #4
да нет, мне тут понадобилось работать с битами переменной как с флагами и было бы удобно задавать их двоично

Добавлено через 50 секунд
ну так и приходится через ассемблерные вставки задавать. Просто стало интересно, почему нет возможности
darkAngel
Технофашист
211 / 192 / 4
Регистрация: 11.03.2009
Сообщений: 850
18.02.2011, 00:13  [ТС]     Двоичные константы (вопрос ради интереса) #5
p.s. мне ещё интересен наибыстрый способ определения состояния оперделённого бита в байте. Кто какие знает?
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
18.02.2011, 00:16     Двоичные константы (вопрос ради интереса) #6
darkAngel, | и шестнадцатеричная константа?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
18.02.2011, 03:39     Двоичные константы (вопрос ради интереса) #7
Цитата Сообщение от darkAngel
способ определения состояния оперделённого бита в байте. Кто какие знает?
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
#include <stdio.h>
 
int main(void)
{
    unsigned char c = 'a';
 
    printf("%d", (c & 01) != 0);
    printf("%d", (c & 02) != 0);
    printf("%d", (c & 04) != 0);
    printf("%d", (c & 010) != 0);
    printf("%d", (c & 020) != 0);
    printf("%d", (c & 040) != 0);
    printf("%d", (c & 0100) != 0);
    printf("%d", (c & 0200) != 0);
    putchar('\n');
    
    printf("%d", c >> 0 & 01);
    printf("%d", c >> 1 & 01);
    printf("%d", c >> 2 & 01);
    printf("%d", c >> 3 & 01);
    printf("%d", c >> 4 & 01);
    printf("%d", c >> 5 & 01);
    printf("%d", c >> 6 & 01);
    printf("%d", c >> 7 & 01);
    putchar('\n');
    
    return 0;    
}
Код
[guest@localhost tests]$ ./t
10000110
10000110
[guest@localhost tests]$
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
18.02.2011, 11:51     Двоичные константы (вопрос ради интереса) #8
Цитата Сообщение от darkAngel Посмотреть сообщение
мне ещё интересен наибыстрый способ определения состояния оперделённого бита в байте. Кто какие знает?
Определение бита - операция "И", установка бита - операция "ИЛИ".

Не по теме:

accept, а зачем восьмиричная с/с ? Чтоб запутать?

darkAngel
Технофашист
211 / 192 / 4
Регистрация: 11.03.2009
Сообщений: 850
18.02.2011, 15:05  [ТС]     Двоичные константы (вопрос ради интереса) #9
вот возник вопрос, как использовать ассемблерные вставки в методах класса? Из-за того, что методы являются inline функциями, вставку делать нельзя.
Пробовал и макросом, но компилятор не получилось обмануть.
Как быть?

Добавлено через 2 минуты
p.s. вызывать обычную функцию с ассемблерной вставкой в методах не подходит, т.к. вызовов планируется огромное количество и лишнее сохранение в стек и выгрузка недопустимая роскошь. А полностью писать всё на ассемблере не охото.
accept
19.02.2011, 05:11
  #10

Не по теме:

Цитата Сообщение от Kastaneda
accept, а зачем восьмиричная с/с ? Чтоб запутать?
не, она легко преобразуется в двоичную, как и шестнадцатеричная
например число 0777 представляет из себя три группы битов 111 111 111

Байт
 Аватар для Байт
14347 / 9178 / 1324
Регистрация: 24.12.2010
Сообщений: 16,800
19.02.2011, 19:54     Двоичные константы (вопрос ради интереса) #11
Цитата Сообщение от darkAngel Посмотреть сообщение
p.s. мне ещё интересен наибыстрый способ определения состояния оперделённого бита в байте. Кто какие знает?
C
1
 if (B&(1<<k)) ...// состояние k-того бита в байте B (счет k - с нуля)
Можно еще быстрее
C
1
2
char S[8] = { 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80 };
 if (B&S[k]) ...
Scar
1 / 1 / 0
Регистрация: 04.07.2011
Сообщений: 5
04.07.2011, 06:20     Двоичные константы (вопрос ради интереса) #12
Почему нельзя можно!
C++
1
int x=0xb010101010;
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.07.2011, 06:55     Двоичные константы (вопрос ради интереса) #13
Python
1
2
3
>>> 0b111000
56
>>>
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.07.2011, 08:01     Двоичные константы (вопрос ради интереса) #14
Цитата Сообщение от darkAngel Посмотреть сообщение
да нет, мне тут понадобилось работать с битами переменной как с флагами и было бы удобно задавать их двоично
Добавлено через 50 секунд
ну так и приходится через ассемблерные вставки задавать.
Ты бредишь? Число не зависит от системы счисления, так что с битами можно хоть с троичной работать, а шестнадцатеричная компактнее и удобнее.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2011, 06:36     Двоичные константы (вопрос ради интереса)
Еще ссылки по теме:

C++ Двоичные числа на С++
Перевод десятичных чисел в двоичные C++
Двоичные файлы C++
Перевод вещественных чисел в двоичные C++
C++ Двоичные файлы

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

Или воспользуйтесь поиском по форуму:
Scar
1 / 1 / 0
Регистрация: 04.07.2011
Сообщений: 5
05.07.2011, 06:36     Двоичные константы (вопрос ради интереса) #15
Цитата Сообщение от Scar Посмотреть сообщение
Почему нельзя можно!
C++
1
int x=0xb010101010;
блин ошибся нельзя...
Yandex
Объявления
05.07.2011, 06:36     Двоичные константы (вопрос ради интереса)
Ответ Создать тему
Опции темы

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