michael@0: // Copyright (c) 2004 by Arthur Langereis (arthur_ext at domain xfinitegames, tld com) michael@0: michael@0: michael@0: // 1 op = 2 assigns, 16 compare/branches, 8 ANDs, (0-8) ADDs, 8 SHLs michael@0: // O(n) michael@0: function bitsinbyte(b) { michael@0: var m = 1, c = 0; michael@0: while(m<0x100) { michael@0: if(b & m) c++; michael@0: m <<= 1; michael@0: } michael@0: return c; michael@0: } michael@0: michael@0: var ret = 0; michael@0: function TimeFunc(func) { michael@0: var x, y, t; michael@0: for(var x=0; x<350; x++) michael@0: for(var y=0; y<256; y++) michael@0: ret += func(y); michael@0: } michael@0: michael@0: TimeFunc(bitsinbyte); michael@0: assertEq(ret, 358400)