diff --git a/apps/web/src/lib/base-conversions.ts b/apps/web/src/lib/base-conversions.ts index f31a8f8..0495641 100644 --- a/apps/web/src/lib/base-conversions.ts +++ b/apps/web/src/lib/base-conversions.ts @@ -120,7 +120,7 @@ export function decimalToOctal(decimal: number | BigNumber): ConversionResult { let magnitude = remainders.join("") || "0"; // Fractional part conversion using BigNumber for precision - let fractionalResult = ""; + let fractionalResult: string; if (hasFractionalPart) { // Extract fractional part as BigNumber precisely const intPart = absValue.integerValue(BigNumber.ROUND_DOWN); @@ -316,7 +316,7 @@ export function decimalToHexadecimal( let magnitude = remainders.join("") || "0"; // Fractional part conversion using BigNumber for precision (20 digits) - let fractionalResult = ""; + let fractionalResult: string; if (hasFractionalPart) { const intPart = absValue.integerValue(BigNumber.ROUND_DOWN); let fracPart = absValue.minus(intPart); diff --git a/apps/web/src/lib/conversions/decimal-to-binary.ts b/apps/web/src/lib/conversions/decimal-to-binary.ts index cbb72f7..2d60266 100644 --- a/apps/web/src/lib/conversions/decimal-to-binary.ts +++ b/apps/web/src/lib/conversions/decimal-to-binary.ts @@ -17,7 +17,7 @@ import { formatDecimalOutput } from "../utils/formatting-utils"; */ export function decimalToBinary( decimal: number | BigNumberType, - specifiedBits?: number, + _specifiedBits?: number, ): ConversionResult { // Handle BigNumber input const isBigNumber = decimal instanceof BigNumber; @@ -54,28 +54,7 @@ export function decimalToBinary( magnitude = "0"; } - // Step 2: Determine bit width - adapt based on minimum required - let bitWidth: number; - if (specifiedBits) { - bitWidth = specifiedBits; - } else { - // For BigNumbers, estimate bit width from string length - const estimatedBits = isBigNumber - ? bigDecimal.toString(2).length - : Math.ceil(Math.log2(Math.abs(bigDecimal.toNumber()) + 1)); - - // For negative numbers, use the same bit width as positive (two's complement handles the sign) - bitWidth = Math.max(estimatedBits, magnitude.length); - // Ensure minimum 8-bit alignment for readability - bitWidth = Math.max(bitWidth, 8); - } - - // Don't pad small results - use natural binary representation - // Only pad very large numbers if needed for readability - // (This preserves the natural binary length for small numbers) - // Fractional part conversion with BigNumber precision (dynamic length) - let fractionalResult = ""; if (hasFractionalPart) { const intPartBN = absValue.integerValue(BigNumber.ROUND_DOWN); let fracBN = absValue.minus(intPartBN); @@ -97,7 +76,7 @@ export function decimalToBinary( fracBN = fracBN.minus(bitBN); } - fractionalResult = bits.join(""); + const fractionalResult = bits.join(""); if (fractionalResult) magnitude += "." + fractionalResult; } diff --git a/bun.lockb b/bun.lockb index 09a2ff6..546bae7 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index c4bd262..a1f698e 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "dependencies": {}, "devDependencies": { - "@eslint/js": "^9.35.0", + "@eslint/js": "^10.0.1", "@typescript-eslint/eslint-plugin": "^8.44.0", "@typescript-eslint/parser": "^8.44.0", "eslint": "^9.35.0",