diff --git a/index.js b/index.js
index <HASH>..<HASH> 100644
--- a/index.js
+++ b/index.js
@@ -14,7 +14,7 @@ function BitField(data, opts){
 	this.grow = opts && (isFinite(opts.grow) && getByteSize(opts.grow) || opts.grow) || 0;

 

 	if(typeof data === "number" || data === undefined){

-		if(data % 8 !== 0) data += 1 << 3;

+        while (data % 8 !== 0) ++data;

 		data = new Container(getByteSize(data));

 		if(data.fill) data.fill(0); // clear node buffers of garbage

 	}
fix for bitfields of non-multiple-of-8 length; previously a buffer of say size <I> would incorrectly yield a 3-byte bitfield, whereas with this change it correctly yields a 2-byte bitfield by rounding up to the next multiple of 8 as opposed to naively adding 8 and then rounding up