Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Everything about electronics
Everything about electronics
Decimal
Binary
Hexadecimal
8-bit
16-bit
32-bit
AND
OR
XOR
NOT (on A)
Left Shift (A << B)
Right Shift (A >> B)
function parseInput(value, base) {
if (value.trim() === ”) return NaN;
return parseInt(value, base);
}
function formatOutput(value, bitWidth) {
const mask = (1 << bitWidth) – 1;
value = value & mask;
return {
binary: value.toString(2).padStart(bitWidth, '0'),
decimal: value.toString(10),
hex: value.toString(16).toUpperCase()
};
}
function calculateBitwise() {
const base = parseInt(document.getElementById("inputFormat").value);
const bitWidth = parseInt(document.getElementById("bitWidth").value);
const A = parseInput(document.getElementById("inputA").value, base);
const B = parseInput(document.getElementById("inputB").value, base);
const op = document.getElementById("operation").value;
const mask = (bitWidth === 32) ? 0xFFFFFFFF : (1 << bitWidth) – 1;
let result;
if (isNaN(A) || (["NOT"].indexOf(op) === -1 && isNaN(B))) {
document.getElementById("bitwiseResult").innerText = "Please enter valid inputs.";
return;
}
switch (op) {
case "AND":
result = A & B;
break;
case "OR":
result = A | B;
break;
case "XOR":
result = A ^ B;
break;
case "NOT":
result = (~A) & mask;
break;
case "LSHIFT":
result = (A <>> B) & mask;
break;
}
const output = formatOutput(result, bitWidth);
document.getElementById(“bitwiseResult”).innerHTML = `
${output.binary}${output.decimal}0x${output.hex} `;
}
function clearBitwise() {
document.getElementById(“inputA”).value = “”;
document.getElementById(“inputB”).value = “”;
document.getElementById(“bitwiseResult”).innerHTML = “”;
}
(adsbygoogle = window.adsbygoogle || []).push({});