- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
if ((((o-'0')|('7'-o)) >= 0) && (((n-'0')|('3'-n)) >= 0)) {
return (n - '0') * 64 + (m - '0') * 8 + (o - '0');
}
unread();
return (n - '0') * 8 + (m - '0');
}
unread();
return (n - '0');
http://www.docjar.com/html/api/java/util/regex/Pattern.java.html
ВНЕЗАПНО! @author Nikolay A. Kuznetsov - наш соотечественник
1400 строк заместо 5600!!!
и это при том что коментарии никуда не делись
имеем over 4 раза сокращение объема 0_0!
избавь нас этого)
?
первый сцыль в гугле
http://dic.academic.ru/dic.nsf/ushakov/807894
по крайней мере его имплементация при быстром просмотре мне понравилась больше.
> ((o-'0')|('7'-o)) >= 0
это в одно сравнение упаковано два сравнения ((o => '0') && (o <= '7')) что есть теоретически медленее, т.к. это два сравнения. (арифметику процы пайп-лайнят, а вот сравнения/джампы это всегда проблема).
я бы за этот трюк в свои ассемблерые годы как минимум пива бы проставил.
А уж как oopcodes выполнит на конкретном проце конкретная JVM -- отдельная тема
За жабу не скажу, не знаю.
((((o-'0')|('7'-o)) >= 0) && (((n-'0')|('3'-n)) >= 0))
в
((o-'0')|('7'-o) | (n-'0')|('3'-n))>=0
это почему-то не сделано - наверняка скопипейздили откуда-то
по ходу класса и по этому куску в частности видно, что о сдвигах и битовых операциях авторы вообще не в курсе