Возможно, это - то, что Вы имеете в виду?
def bits_on_count(x):
b = 0
while x != 0:
if x & 1: # Last bit is a 1
b += 1
x >>= 1 # Shift the bits of x right
return b
существует также способ сделать это просто в Python 3.0:
def bits_on_count(x):
return sum(c=='1' for c in bin(x))
Это использует то, что мусорное ведро (x) дает двоичное представление x.
Щелкните правой кнопкой мыши по флэш-ролику, у вас должно быть отладка в меню, если это отладочная версия.
Или вы можете перейти к флэш тестовая страница на сайте Adobe. Вы можете найти возможности плеера внизу.
Это редко встречается в реальных банках, которые предпочитают округлять в большую сторону, если деньги поступают в их сторону, и округлять в меньшую сторону, когда они уходят в сторону клиентов.ORACLE NUMBER на самом деле является довольно хорошей реализацией десятичной арифметики и является точной, насколько это возможно.
Вы всегда можете реализовать свою собственную функцию для банковского округления, как описано здесь .
Округление банкиров с 0,5 до 0: округление в сторону четных чисел.
Oracle реализовал округление на половину от нуля :
SQL> select round(22.5) from dual
2 /
ROUND(22.5)
-----------
23
SQL> select round(23.5) from dual
2 /
ROUND(23.5)
-----------
24
SQL> select round(-23.5) from dual
2 /
ROUND(-23.5)
------------
-24
SQL> select round(-22.5) from dual
2 /
ROUND(-22.5)
------------
-23
SQL>
Почему они не меняют его на округление Банкиров? Что ж, для большинства целей округление до половины от нуля вполне достаточно. Кроме того, есть старый запасной вариант, изменение которого, вероятно, сломает слишком большую часть существующей кодовой базы - как самой Oracle, так и всех ее клиентов.