diff --git a/ts/flexbuffers/bit-width-util.ts b/ts/flexbuffers/bit-width-util.ts
new file mode 100644
index 0000000..acb3c96
--- /dev/null
+++ b/ts/flexbuffers/bit-width-util.ts
@@ -0,0 +1,34 @@
+import { BitWidth } from './bit-width'
+
+export function toByteWidth(bitWidth: BitWidth): number {
+  return 1 << bitWidth;
+}
+
+export function iwidth(value: number | bigint): BitWidth {
+  if (value >= -128 && value <= 127) return BitWidth.WIDTH8;
+  if (value >= -32768 && value <= 32767) return BitWidth.WIDTH16;
+  if (value >= -2147483648 && value <= 2147483647) return BitWidth.WIDTH32;
+  return BitWidth.WIDTH64;
+}
+
+export function fwidth(value: number): BitWidth {
+  return value === Math.fround(value) ? BitWidth.WIDTH32 : BitWidth.WIDTH64;
+}
+
+export function uwidth(value: number): BitWidth {
+  if (value <= 255) return BitWidth.WIDTH8;
+  if (value <= 65535) return BitWidth.WIDTH16;
+  if (value <= 4294967295) return BitWidth.WIDTH32;
+  return BitWidth.WIDTH64;
+}
+
+export function fromByteWidth(value: number): BitWidth {
+  if (value === 1) return BitWidth.WIDTH8;
+  if (value === 2) return BitWidth.WIDTH16;
+  if (value === 4) return BitWidth.WIDTH32;
+  return BitWidth.WIDTH64;
+}
+
+export function paddingSize(bufSize: number, scalarSize: number): number {
+  return (~bufSize + 1) & (scalarSize - 1);
+}
\ No newline at end of file
