Ask Your Question

# Dividing by 2 fast: how?

asked 2013-12-23 03:43:39 +0100

This post is a wiki. Anyone with karma >750 is welcome to improve it.

Please consider the following example:

tt=1200
ss=tt>>2
print ss
300

The division by 4 goes fast. But how can I divide by 2?

The expression tt>2 yields a boolean. And the options ss=tt//2 and ss=tt; ss/=2 seem not optimal.

timeit("tt=1200;ss=tt>>2")    625 loops, best of 3: 152 ns per loop
timeit("tt=1200;ss=tt//2")      625 loops, best of 3: 323 ns per loop
timeit("tt=1200;ss=tt;ss/=2") 625 loops, best of 3: 552 ns per loop

Thanks for you kind consideration.

edit retag close merge delete

## Comments

Is this homework? Do you understand what the bit-shift operator does? If not, look up http://docs.python.org/2/library/stdtypes.html#bitwise-operations-on-integer-types

( 2013-12-23 03:53:30 +0100 )edit

## 1 Answer

Sort by » oldest newest most voted

answered 2013-12-31 04:19:15 +0100

This post is a wiki. Anyone with karma >750 is welcome to improve it.

that should be tt>>1

more

## Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

## Stats

Asked: 2013-12-23 03:43:39 +0100

Seen: 221 times

Last updated: Dec 31 '13