- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
uint8_t const Q_ROM QF_div8Lkup[65] = {
static_cast<uint8_t>(0), // unused location
static_cast<uint8_t>(0), static_cast<uint8_t>(0), static_cast<uint8_t>(0),
static_cast<uint8_t>(0), static_cast<uint8_t>(0), static_cast<uint8_t>(0),
static_cast<uint8_t>(0), static_cast<uint8_t>(0),
static_cast<uint8_t>(1), static_cast<uint8_t>(1), static_cast<uint8_t>(1),
static_cast<uint8_t>(1), static_cast<uint8_t>(1), static_cast<uint8_t>(1),
static_cast<uint8_t>(1), static_cast<uint8_t>(1),
static_cast<uint8_t>(2), static_cast<uint8_t>(2), static_cast<uint8_t>(2),
static_cast<uint8_t>(2), static_cast<uint8_t>(2), static_cast<uint8_t>(2),
static_cast<uint8_t>(2), static_cast<uint8_t>(2),
static_cast<uint8_t>(3), static_cast<uint8_t>(3), static_cast<uint8_t>(3),
static_cast<uint8_t>(3), static_cast<uint8_t>(3), static_cast<uint8_t>(3),
static_cast<uint8_t>(3), static_cast<uint8_t>(3),
static_cast<uint8_t>(4), static_cast<uint8_t>(4), static_cast<uint8_t>(4),
static_cast<uint8_t>(4), static_cast<uint8_t>(4), static_cast<uint8_t>(4),
static_cast<uint8_t>(4), static_cast<uint8_t>(4),
static_cast<uint8_t>(5), static_cast<uint8_t>(5), static_cast<uint8_t>(5),
static_cast<uint8_t>(5), static_cast<uint8_t>(5), static_cast<uint8_t>(5),
static_cast<uint8_t>(5), static_cast<uint8_t>(5),
static_cast<uint8_t>(6), static_cast<uint8_t>(6), static_cast<uint8_t>(6),
static_cast<uint8_t>(6), static_cast<uint8_t>(6), static_cast<uint8_t>(6),
static_cast<uint8_t>(6), static_cast<uint8_t>(6),
static_cast<uint8_t>(7), static_cast<uint8_t>(7), static_cast<uint8_t>(7),
static_cast<uint8_t>(7), static_cast<uint8_t>(7), static_cast<uint8_t>(7),
static_cast<uint8_t>(7), static_cast<uint8_t>(7)
};
// ....
//! the function evaluates to TRUE if the priority set has the element n.
bool hasElement(uint_fast8_t const n) const {
uint_fast8_t const m =
static_cast<uint_fast8_t>(Q_ROM_BYTE(QF_div8Lkup[n]));
return ((m_bits[m]
& static_cast<uint_fast8_t>(Q_ROM_BYTE(QF_pwr2Lkup[n])))
!= static_cast<uint_fast8_t>(0));
}
//! insert element \a n into the set, n = 1..64
void insert(uint_fast8_t const n) {
uint_fast8_t m =
static_cast<uint_fast8_t>(Q_ROM_BYTE(QF_div8Lkup[n]));
m_bits[m] |= static_cast<uint_fast8_t>(Q_ROM_BYTE(QF_pwr2Lkup[n]));
m_bytes |=
static_cast<uint_fast8_t>(Q_ROM_BYTE(QF_pwr2Lkup[m
+ static_cast<uint_fast8_t>(1)]));
}
делим на 8 в индустриальном С++. это такой специальный вариант крестов где пользователям сначала лоботомию делают.
из реализации bitset'а. insert() приведен в качестве примера.
http://sourceforge.net/p/qpc/qpcpp/ci/master/tree/include/qpset.h
http://sourceforge.net/p/qpc/qpcpp/ci/master/tree/qf/source/qf_pwr2.cpp
ирония в том что на арме шифт даже обычный мув умеет делать. только в тамбе это должно быть отдельной инструкцией.
АХАХАХА Пиздец нубасы я так ржал что под стол упал, долбоёбики-параноики, везде статик касты, куча хуиты всякой типа безопасной шоб нидайбог хацкерский шифт не сделать, но при этом... СЫРОЙ МАССИВ!!!!! ААААААААА ЛОЛИЩЕЕЕЕЕЕЕЕЕ
А я вот наоборот в реальной жизни начал считать с ноля)
особая любовь у чудаков, заметил, нуллы типизированые на всё подряд заводить, а потом все reinterpret_cast'ами обвешать: