Провёл небольшую оптимизацию, сменил парольки и обновил цмс.. посмотрим, решилась проблема с хостингом или нет …
Author Archives: admin
ebay/aliespress n arduino
на ebay довольно много неудачных сделок : 180 дневную пэйпэл защиту никто не отменял с другой стороны.. надо ответить тамошним любителям посылать вещи заново.. И ведь как легко забыть про покупки напрочь)) спустя пару месяцев начинает припекать, открываешь с продавцами беседу и денежка возвращается неожиданно: 100-150р сделки.. вроде как и не жалко совсем, но если …
AVR
Однако, как же библиотека ардуино облегчает работу. Флешку можно подключить парой строк кода, в то время как со сторонними универсальными библиотеками приходится мучиться в час по чайной ложке в страхе что-нибудь не так настроить и сжечь камушек(500р за платку у китайцев между прочим) В конечном итоге, для готового продукта гораздо важнее полный контроль со стороны …
ST10
Интересно, зачем делить оперативку на внутреннюю и внешнюю.. Какой – то уж очень переусложнённый получается процессор. Непривычно много в нём разновидностей памяти, что теоретически при грамотном использовании возможно позволяет производительность повысить, но это всё вероятностные категории. На самом деле, привыкли мы к халяве ARM-овской и пытаемся под одну гребёнку стричь все прочие процессора.. Вообще, надо …
Длинная арифметика
Всего – то нужно было сложить пару длинных чисел… 🙂
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
class BigInteger32 { public List<Int32> number = new List<Int32> (); public BigInteger32 SmartAdd ( BigInteger32 operand ) { Int32 mask = 1 << 31; Int32 hypo_length = Math.Max ( number.Count, operand.number.Count ); Int32 intermediate_left_operand; Int32 intermediate_right_operand; Int32 intermediate_result; Int32 move_to_next = 0; for ( int i = 0; i < hypo_length; i++ ) { if ( i < number.Count ) { intermediate_left_operand = number [i]; } else { intermediate_left_operand = 0; number.Add(0); } if ( i < operand.number.Count ) { intermediate_right_operand = operand.number [i]; } else { intermediate_right_operand = 0; } intermediate_result = ~mask & intermediate_left_operand + ~mask & intermediate_right_operand + move_to_next; move_to_next = mask & intermediate_left_operand >> 31 + mask & intermediate_right_operand >> 31 + mask & intermediate_result >> 31; number [i] = (intermediate_result & ~mask) | ((move_to_next & 1) << 31); move_to_next >>= 1; } if ( move_to_next > 0 ) { number.Add ( move_to_next ); } return this; } } |