使用javascript模拟并行位全加法器
迪丽瓦拉
2024-03-23 08:06:09
0

使用javascript模拟并行位全加法器

解析:

const A = [1, 0, 0, 1];
const B = [1, 1, 0, 1];
function plus (a, b) {let GList = [], PList = [], res = [];while(a.length) {let ai = a.pop()let bi = b.pop()let Gi = ai && bi;let Pi = ai ^ bi;let worker = new Worker('./worker.js')worker.postMessage({GList, PList})worker.onmessage = (event) => {let ci = event.data;let si = Pi ^ ci;res.unshift(si)}GList.unshift(Gi)PList.unshift(Pi)}let worker = new Worker('./worker.js')worker.postMessage({GList, PList})worker.onmessage = (event) => {res.unshift(event.data)console.log(res)return res;}
}
plus(A, B)以上 main.jsself.addEventListener('message', function (e) {let GList = e.data.GListlet PList = e.data.PListlet ci = 0;while(GList.length) {let gi = GList.pop()let pi = PList.pop()ci = gi || pi && ci;}self.postMessage(ci)self.close()
}, false)以上worker.js

相关内容