- 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() приведен в качестве примера.
Dummy00001 11.02.2015 12:06 # 0
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
bormand 11.02.2015 12:46 # 0
Dummy00001 11.02.2015 13:32 # +1
ирония в том что на арме шифт даже обычный мув умеет делать. только в тамбе это должно быть отдельной инструкцией.
TarasB 11.02.2015 15:40 # +3
АХАХАХА Пиздец нубасы я так ржал что под стол упал, долбоёбики-параноики, везде статик касты, куча хуиты всякой типа безопасной шоб нидайбог хацкерский шифт не сделать, но при этом... СЫРОЙ МАССИВ!!!!! ААААААААА ЛОЛИЩЕЕЕЕЕЕЕЕЕ
bormand 11.02.2015 15:44 # 0
kegdan 11.02.2015 16:09 # 0
А я вот наоборот в реальной жизни начал считать с ноля)
roman-kashitsyn 11.02.2015 16:15 # 0
TarasB 11.02.2015 16:23 # +6
roman-kashitsyn 11.02.2015 16:34 # 0
kegdan 11.02.2015 16:58 # 0
roman-kashitsyn 11.02.2015 17:47 # 0
Dummy00001 11.02.2015 16:29 # −1
особая любовь у чудаков, заметил, нуллы типизированые на всё подряд заводить, а потом все reinterpret_cast'ами обвешать:
Abbath 11.02.2015 20:03 # +1
Dummy00001 11.02.2015 20:10 # 0
Abbath 11.02.2015 20:20 # 0
Dummy00001 11.02.2015 21:48 # 0