The fact it uses the same fixed-width for all further operations (using a "static" storage from the initialization) limits the usability as a generic-purpose "library": you cannot reuse the library in projects that need different precision. Otherwise they will all use the same precision (256 bits by default) and any change (using different "initializations") will destroy the results with existing instances.
Ideally, the bigints should have a member containing their number of bits (and an indicator that unsigned arithmetic occurs), so that each instance carries it.
As well the library should include primitives to support "rotates"