Module: Bitcount::Pure
- Defined in:
- lib/bitcount/pure.rb
Class Method Summary collapse
- .layout_size ⇒ Object
- .nlz(n, size = nil) ⇒ Object
- .ntz(n, size = nil) ⇒ Object
- .popcount(n) ⇒ Object
Class Method Details
.layout_size ⇒ Object
6 7 8 |
# File 'lib/bitcount/pure.rb', line 6 def layout_size 64 end |
.nlz(n, size = nil) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/bitcount/pure.rb', line 25 def nlz(n, size = nil) size ||= layout_size count = 0 bits = n.to_s(2) layout_error if bits.size > size bits.rjust(size, "0").each_char do |b| (b == '0') ? count += 1 : break end count end |
.ntz(n, size = nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/bitcount/pure.rb', line 14 def ntz(n, size = nil) size ||= layout_size count = 0 bits = n.to_s(2) layout_error if bits.size > size bits.rjust(size, "0").reverse.each_char do |b| (b == '0') ? count += 1 : break end count end |
.popcount(n) ⇒ Object
10 11 12 |
# File 'lib/bitcount/pure.rb', line 10 def popcount(n) n.to_s(2).count("1") end |