Бинарный префикс

 

Сейчас для дат есть префикс D'2013.01.01', а для бинарных данных предлагаю стиль MySQL b'0101101' = 45

При подготовки хромосом для нейронной сети такая запись удобнее для зрительного восприятия.

Есть стиль 0b0101101 = 45 по аналогии с 0x2D

 
Roffild:

Сейчас для дат есть префикс D'2013.01.01', а для бинарных данных предлагаю стиль MySQL b'0101101' = 45

При подготовки хромосом для нейронной сети такая запись удобнее для зрительного восприятия.

Есть стиль 0b0101101 = 45 по аналогии с 0x2D

В сервисдеск
 

Ну, я понадеялся на активное обсуждение, как лучше сделать, а тут глухо...

Кстати, стандартный Виндовой Калькулятор прекрасно отдает бинарное представление в режиме Программиста.

 
Roffild:

Ну, я понадеялся на активное обсуждение, как лучше сделать, а тут глухо...

в сервисдеск. там очень громко
 

я - за! Но не пройдет, потому что: 

1) Ошибка удаляться от с++

2) Шестнадцатеричный формат уже есть и легко читается 0x2D

 
Snaf:

я - за! Но не пройдет, потому что: 


Мы тоже - за. Пройдёт, потому что нам самим этого не хватало (у нас уже есть литеральные префиксы C' и D', которых нет в C++). И тут нашёлся человек, правильно сформулировавший запрос.

Более того. В MetaEditor в обзоре переменных будет возможность просматривать целочисленные значения не только в десятичеом виде, но и в в шестнадцатиричном, и в двоичном

Ждите следующего билда

 

По-моему не проблема (в этой реализиции максимум 8 unsigned бит):

#define BIN(val)        ((val % 10 ? 1 : 0) + (val % 100 >= 10  &&  val % 100 ? 2 : 0) + (val % 1000 >= 100  &&  val % 1000 ? 4 : 0) + (val % 10000 >= 1000  &&  val % 10000 ? 8 : 0) + (val % 100000 >= 10000  &&  val % 100000 ? 16 : 0) + (val % 1000000 >= 100000  &&  val % 1000000 ? 32 : 0) + (val % 10000000 >= 1000000  &&  val % 10000000 ? 64 : 0) + (val % 100000000 >= 10000000  &&  val % 100000000 ? 128 : 0))


void OnStart()
{
   const int i = BIN(10111); // 23 dec
   Alert(i);
}

Жаль что нет многострочного defin'а чтобы записть более читабельно:

#define BIN(val)        ((val % 10 ? 1 : 0) + \
                     (val % 100 >= 10  &&  val % 100 ? 2 : 0) + \
                     (val % 1000 >= 100  &&  val % 1000 ? 4 : 0) + \
                     (val % 10000 >= 1000  &&  val % 10000 ? 8 : 0) +\
                     (val % 100000 >= 10000  &&  val % 100000 ? 16 : 0) +\
                     (val % 1000000 >= 100000  &&  val % 1000000 ? 32 : 0) +\
                     (val % 10000000 >= 1000000  &&  val % 10000000 ? 64 : 0) +\
                     (val % 100000000 >= 10000000  &&  val % 100000000 ? 128 : 0))

Лучше бы локи включили ))

Upd:

Нагородил лишнего, нормальный вариант:

#define BIN(val)        ((val % 10 ? 1 : 0) + \
                        (val % 100 >= 10 ? 2 : 0) + \
                        (val % 1000 >= 100 ? 4 : 0) + \
                        (val % 10000 >= 1000 ? 8 : 0) +\
                        (val % 100000 >= 10000 ? 16 : 0) +\
                        (val % 1000000 >= 100000 ? 32 : 0) +\
                        (val % 10000000 >= 1000000 ? 64 : 0) +\
                        (val % 100000000 >= 10000000 ? 128 : 0))
 
220Volt:

Жаль что нет многострочного defin'а чтобы записть более читабельно:

Поддерживается с 794 билда

#define BIN(val) ((val % 10 ? 1 : 0) + \
                (val % 100 >= 10  &&  val % 100 ? 2 : 0) + \
                (val % 1000 >= 100  &&  val % 1000 ? 4 : 0) + \
                (val % 10000 >= 1000  &&  val % 10000 ? 8 : 0) + \
                (val % 100000 >= 10000  &&  val % 100000 ? 16 : 0) + \
                (val % 1000000 >= 100000  &&  val % 1000000 ? 32 : 0) + \
                (val % 10000000 >= 1000000  &&  val % 10000000 ? 64 : 0) + \
                (val % 100000000 >= 10000000  &&  val % 100000000 ? 128 : 0))
 
mql5:
Поддерживается с 794 билда

Круто.  Круто-круто-круто.

Теперь можно городить самопальные  шаблонные классы.

Хотя круче, если б в самом языке появились уже.

 
MetaDriver:


Теперь можно городить самопальные  шаблонные классы.

Хотя круче, если б в самом языке появились уже.

template тоже доступен давно.
 
sergeev:
template тоже доступен давно.

Насколько знаю - только для функций.  Для классов пока нетути.

Или я шо-то пропустил?

Во всяком случае в хелпе об этом ничего и в анонсах билдов не встречал.