DE
Size: a a a
DE
DE
DE
['I', 2, 7]
0b0011001100 ^ 0b0111111000
L
['I', 2, 7]
0b0011001100 ^ 0b0111111000
DE
t
L
L
L
L
DE
function binarySimulation(s, q){
const result = []
for (let i = 0; i < q.length; i += 1) {
if (q[i][0] === 'I') {
const start = q[i][1] - 1
const length = q[i][2] - start
const arr = new Array(10).fill(0)
arr.splice(start, length, ...'1'.repeat(length))
s = (Number(`0b${s}`) ^ Number(`0b${arr.join('')}`)).toString(2).padStart(10, 0)
console.log(s)
}
if (q[i][0] === 'Q') {
result.push(s[q[i][1] - 1])
}
}
return result
}
L
function binarySimulation(s, q){
const result = []
for (let i = 0; i < q.length; i += 1) {
if (q[i][0] === 'I') {
const start = q[i][1] - 1
const length = q[i][2] - start
const arr = new Array(10).fill(0)
arr.splice(start, length, ...'1'.repeat(length))
s = (Number(`0b${s}`) ^ Number(`0b${arr.join('')}`)).toString(2).padStart(10, 0)
console.log(s)
}
if (q[i][0] === 'Q') {
result.push(s[q[i][1] - 1])
}
}
return result
}
L
L
L
function binarySimulation(s, q){
const result = []
for (let i = 0; i < q.length; i += 1) {
if (q[i][0] === 'I') {
const start = q[i][1] - 1
const length = q[i][2] - start
const arr = new Array(10).fill(0)
arr.splice(start, length, ...'1'.repeat(length))
s = (Number(`0b${s}`) ^ Number(`0b${arr.join('')}`)).toString(2).padStart(10, 0)
console.log(s)
}
if (q[i][0] === 'Q') {
result.push(s[q[i][1] - 1])
}
}
return result
}
const binarySimulation = (
s, q,
a = s.split("").map(Number),
m = {
I: (a, r, _, s, e) => Array(e - s + 1).fill(0).map((_, i, C, j = i + s - 1) => a[j] = +!a[j]),
Q: (a, r, _, i) => r.push(a[i - 1]),
}
) => q
.reduce((r, v) => (m[ v[0] ](a, r, ...v), r), [])
.map(String)
t
L
DE
DE
DE