diff --git a/async/format.browser.js b/async/format.browser.js
index <HASH>..<HASH> 100644
--- a/async/format.browser.js
+++ b/async/format.browser.js
@@ -1,6 +1,6 @@
 module.exports = function (random, alphabet, size) {
   var mask = (2 << 31 - Math.clz32((alphabet.length - 1) | 1)) - 1
-  var step = Math.ceil(1.6 * mask * size / alphabet.length)
+  var step = -~(1.6 * mask * size / alphabet.length)
 
   function tick (id) {
     return random(step).then(function (bytes) {
diff --git a/format.browser.js b/format.browser.js
index <HASH>..<HASH> 100644
--- a/format.browser.js
+++ b/format.browser.js
@@ -1,6 +1,6 @@
 module.exports = function (random, alphabet, size) {
   var mask = (2 << Math.log(alphabet.length - 1) / Math.LN2) - 1
-  var step = Math.ceil(1.6 * mask * size / alphabet.length)
+  var step = -~(1.6 * mask * size / alphabet.length)
   var id = ''
 
   while (true) {
Replace Math.ceil with the bit operation (#<I>)

* Replace Math.ceil with the bit operation



* Reverse the change with bit operation



* Reverse the change with bit operation