diff options
author | Hans Hagen <pragma@wxs.nl> | 2009-09-11 18:14:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2009-09-11 18:14:00 +0200 |
commit | 31c85bed04f79cca40e26af118964bd86e8edd16 (patch) | |
tree | 64815e1310af371e9ad9f87913b7fa33357f0da2 /tex/context/base/l-number.lua | |
parent | 8683bfc5e51de9f4436c7deebd9517c9f2779f0a (diff) | |
download | context-31c85bed04f79cca40e26af118964bd86e8edd16.tar.gz |
beta 2009.09.11 18:14
Diffstat (limited to 'tex/context/base/l-number.lua')
-rw-r--r-- | tex/context/base/l-number.lua | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/tex/context/base/l-number.lua b/tex/context/base/l-number.lua index c0434fd5d..39ca2c6b6 100644 --- a/tex/context/base/l-number.lua +++ b/tex/context/base/l-number.lua @@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['l-number'] = { license = "see context related readme files" } -local format = string.format +local format, foor, insert = string.format, math.floor, table.insert number = number or { } @@ -42,4 +42,15 @@ function number.toset(n) return one:match(tostring(n)) end - +function number.bits(n,zero) + local t, i = { }, (zero and 0) or 1 + while n > 0 do + local m = n % 2 + if m > 0 then + insert(t,1,i) + end + n = floor(n/2) + i = i + 1 + end + return t +end |