ການການຄວາມຄິດທີ່ບາງບັນຍານ JavaScript
- ບ່ອນໜ້າທຳນາຍ JS ການສ້າງການກະຈາຍ
- ບ່ອນໜ້າຫຼັງ JS ການສ້າງການຕິດຕາມ
ການການຄວາມຄິດທີ່ບາງບັນຍານ JavaScript
ຕົວເລກການ | ຊື່ | ການອະທິບາຍ |
---|---|---|
& | AND | ຖ້າສອງຕົວທັງສອງແມ່ນ 1 ຈະກະຈັດຕົວທັງໝົດເປັນ 1 |
| | OR | ຖ້າສອງຕົວໜຶ່ງໃນສອງຕົວແມ່ນ 1 ຈະກະຈັດຕົວທັງໝົດເປັນ 1 |
^ | XOR | ຖ້າສອງຕົວທີ່ມີພຽງໜຶ່ງຕົວແມ່ນ 1 ຈະກະຈັດຕົວທັງໝົດເປັນ 1 |
~ | NOT | ການລົບຕົວຕົວທັງໝົດ |
<< | ການຍ້າຍມາທາງຊ້າຍຜ່ານການຍົກຕົວຄຳສະຫຼຸບ | ການຍ້າຍມາທາງຊ້າຍຜ່ານການຍົກຕົວຄຳສະຫຼຸບຈາກຊ້າຍແລະຍົກຕົວຕົວແຈງທີ່ຢູ່ທາງຊ້າຍແລະຍົກຕົວຕົວແຈງທີ່ຢູ່ທາງຊ້າຍຫຼັງຈາກນັ້ນ |
>> | ການຍ້າຍມາທາງຊ້າຍມີສັນຍານ | ການຍ້າຍມາທາງຊ້າຍຜ່ານການຍົກຕົວຄຳສະຫຼຸບຈາກຊ້າຍແລະຍົກຕົວຕົວແຈງທີ່ຢູ່ທາງຊ້າຍແລະຍົກຕົວຕົວແຈງທີ່ຢູ່ທາງຊ້າຍຫຼັງຈາກນັ້ນ |
>>> | ການຍ້າຍມາທາງຊ້າຍຜ່ານການຍົກຂັບຕົວຄຳສະຫຼຸບ | ການຍ້າຍມາທາງຊ້າຍຜ່ານການຍົກຂັບຕົວຄຳສະຫຼຸບຈາກຊ້າຍໄປທາງຊ້າຍແລະຍົກຕົວຕົວແຈງທີ່ຢູ່ທາງຊ້າຍຫຼັງຈາກນັ້ນ |
ຄວາມຄິດຕາມຄວາມຈິງ
ການປະຕິບັດ | ຜົນ | ມີຄວາມສະເໝີ | ຜົນ |
---|---|---|---|
5 & 1 | 1 | 0101 & 0001 | 0001 |
5 | 1 | 5 | 0101 | 0001 | 0101 |
5 ^ 1 | 4 | 0101 ^ 0001 | 0100 |
~ 5 | 10 | ~0101 | 1010 |
5 << 1 | 10 | 0101 << 1 | 1010 |
5 >> 1 | 2 | 0101 >> 1 | 0010 |
5 >>> 1 | 2 | 0101 >>> 1 | 0010 |
JavaScript ນຳໃຊ້ບັນດາບັນທັບວັດແທກ 32 ວັດທະນະທີ
JavaScript ນຳໃຊ້ບັນດາບັນທັບ 64 ວັດທະນະທີສຳລັບບັນດາບັນທັບ, ແຕ່ການປະຕິບັດວັດແທກທັງໝົດຈະປະຕິບັດເປັນ 32 ວັດທະນະທີບາດຫຼັກ.
ກ່ອນທີ່ຈະປະຕິບັດການປະຕິບັດວັດແທກ, JavaScript ຈະປ່ຽນບັນດາບັນທັບເປັນ 32 ວັດທະນະທີ່ມີສິນລະຄວາມ.
ຫຼັງຈາກການປະຕິບັດການປະຕິບັດວັດແທກພາບ, ຜົນຈະປ່ຽນຄືນເປັນ JavaScript 64 ວັດທະນະທີ.
ຕົວຢ່າງທີ່ທີ່ມີ 4 ວັດທະນະທີບໍ່ມີສິນລະຄວາມ. ຍ້ອນນັ້ນ ~ 5 ຈະມີ 10.
ຍ້ອນວ່າ JavaScript ນຳໃຊ້ 32 ວັດທະນະທີ່ມີສິນລະຄວາມ JavaScript ຈະກັບຄືນ -6。
00000000000000000000000000000101 (5)
11111111111111111111111111111010 (~5 = -6)
ບັນດາບັນທັບທີ່ມີສິນລະຄວາມໃຊ້ບັນດາບັນທັບທີ່ຢູ່ທີ່ຫຼັງເປັນສິນລະຄວາມ.
ການປະຕິບັດ AND
ຖ້າມີການປະຕິບັດ AND ບັນດາບັນທັບມີ 1 ທັງໝົດຈະມີ 1。
ຕົວຢ່າງສະຫະພາບ:
ການປະຕິບັດ | ຜົນ |
---|---|
0 & 0 | 0 |
0 & 1 | 0 |
1 & 0 | 0 |
1 & 1 | 1 |
ຕົວຢ່າງສີ່ວັດ:
ການປະຕິບັດ | ຜົນ |
---|---|
1111 & 0000 | 0000 |
1111 & 0001 | 0001 |
1111 & 0010 | 0010 |
1111 & 0100 | 0100 |
ການປະຕິບັດ OR
ຖ້າມີການປະຕິບັດ OR ບັນດາບັນທັບມີ 1 ຈະມີ 1:
ຕົວຢ່າງສະຫະພາບ
ການປະຕິບັດ | ຜົນ |
---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
ການປະຕິບັດສີ່ວັດ:
ການປະຕິບັດ | ຜົນ |
---|---|
1111 | 0000 | 1111 |
1111 | 0001 | 1111 |
1111 | 0010 | 1111 |
1111 | 0100 | 1111 |
ການປະຕິບັດ XOR
ຖ້າມີການປະຕິບັດ XOR ບັນດາບັນທັບມີຄວາມແຕກຕ່າງຈະມີ 1:
ຕົວຢ່າງສະຫະພາບ:
ການປະຕິບັດ | ຜົນ |
---|---|
0 ^ 0 | 0 |
0 ^ 1 | 1 |
1 ^ 0 | 1 |
1 ^ 1 | 0 |
ຕົວຢ່າງສີ່ວັດ:
ການປະຕິບັດ | ຜົນ |
---|---|
1111 ^ 0000 | 1111 |
1111 ^ 0001 | 1110 |
1111 ^ 0010 | 1101 |
1111 ^ 0100 | 1011 |
JavaScript ການປະຕິບັດທີ່ວ່າ AND (&)
ຖ້າບັນດາບັນທັບມີ 1 ທັງໝົດຈະມີການປະຕິບັດ AND ມີ 1:
ຕົວແທນ | ບິນນິກ |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 & 1 | 00000000000000000000000000000001 (1) |
ຄວາມຄິດຕາມຄວາມຈິງ
var x = 5 & 1;
JavaScript ການປະຕິບັດທີ່ວ່າ
如果数位之一是 1,则位运算 OR 返回 1:
ຕົວແທນ | ບິນນິກ |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 | 1 | 00000000000000000000000000000101 (5) |
ຄວາມຄິດຕາມຄວາມຈິງ
var x = 5 | 1;
JavaScript 位运算 XOR (^)
如果数位是不同的,则 XOR 返回 1:
ຕົວແທນ | ບິນນິກ |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 ^ 1 | 00000000000000000000000000000100 (4) |
ຄວາມຄິດຕາມຄວາມຈິງ
var x = 5 ^ 1;
JavaScript 位运算 NOT (~)
ຕົວແທນ | ບິນນິກ |
---|---|
5 | 00000000000000000000000000000101 |
~5 | 11111111111111111111111111111010 (-6) |
ຄວາມຄິດຕາມຄວາມຈິງ
var x = ~5;
JavaScript(零填充)位运算左移(<<)
这是零填充的左移。一个或多个零数位从右被推入,最左侧的数位被移除:
ຕົວແທນ | ບິນນິກ |
---|---|
5 | 00000000000000000000000000000101 |
5 << 1 | 00000000000000000000000000001010 (10) |
ຄວາມຄິດຕາມຄວາມຈິງ
var x = 5 << 1;
JavaScript(有符号)位运算右移(>>)
ນີ້ແມ່ນການຍ້າຍຊ້າຍທີ່ກັບຕົວແທນ. ຈຳນວນດີເລີຍທີ່ສຸດຈາກຊ້າຍຖືກຍ້າຍອອກ, ຈຳນວນດີເລີຍໜຶ່ງຫນັງຫນິດຈາກຊ້າຍດັ່ງກ່າວກັບຊ້າຍສຸດຂອງຈຳນວນດີເລີຍ:
ຕົວແທນ | ບິນນິກ |
---|---|
-5 | 11111111111111111111111111111011 |
-5 >> 1 | 11111111111111111111111111111101 (-3) |
ຄວາມຄິດຕາມຄວາມຈິງ
var x = -5 >> 1;
JavaScript (ຫນັງດີເລີຍ) ການຍ້າຍຊ້າຍ (>>>)
ນີ້ແມ່ນການຍ້າຍຊ້າຍລະບາຍດ້ວຍຫນັງດີເລີຍ. ຈຳນວນຫນັງດີເລີຍໜຶ່ງຫນັງຫນິດຈາກຊ້າຍດັ່ງກ່າວກັບຊ້າຍສຸດຂອງຈຳນວນດີເລີຍຖືກຍ້າຍອອກ:
ຕົວແທນ | ບິນນິກ |
---|---|
5 | 00000000000000000000000000000101 |
5 >>> 1 | 00000000000000000000000000000010 (2) |
ຄວາມຄິດຕາມຄວາມຈິງ
var x = 5 >>> 1;
32-bit ຈຳນວນສິບສາມບົດສະນະມັດສະນະຫນັງດີເລີຍ
ການຈັດຕັ້ງອັນດັບຫນັງພຽງຫນິດຂອງຈຳນວນສິບສາມບົດສະນະມັດສະນະຫນັງດີເລີຍຫນັງການເບິ່ງຄວາມລາວ
ການສະແດງວິສະວະດັບສອງ | ຄູ່ມູນວິສະວະສິບ |
---|---|
00000000000000000000000000000001 | 1 |
00000000000000000000000000000010 | 2 |
00000000000000000000000000000100 | 4 |
00000000000000000000000000001000 | 8 |
00000000000000000000000000010000 | 16 |
00000000000000000000000000100000 | 32 |
00000000000000000000000001000000 | 64 |
ການຕິດຕາມຫົວຄວາມຫຼາຍກວ່າສະແດງຮູບພາບວິສະວະດັບສອງ:
ການສະແດງວິສະວະດັບສອງ | ຄູ່ມູນວິສະວະສິບ |
---|---|
00000000000000000000000000000101 | 5 (4 + 1) |
00000000000000000000000000101000 | 40 (32 + 8) |
00000000000000000000000000101101 | 45 (32 + 8 + 4 + 1) |
ທີ່ຢູ່ວ່າຈຳນວນບາງຫົວຄວາມແມ່ນການຕິດຕາມສະແດງຂອງຈຳນວນບາງຫົວຄວາມ:
ການສະແດງວິສະວະດັບສອງ | ຄູ່ມູນວິສະວະສິບ |
---|---|
00000000000000000000000000000101 | 5 |
11111111111111111111111111111011 | -5 |
00000000000000000000000000101000 | 40 |
11111111111111111111111111011000 | -40 |
11111111111111111111111111011001 | -41 |
ການປ່ຽນວິສະວະສິບໃຫ້ວິສະວະດັບສອງ
ຄວາມຄິດຕາມຄວາມຈິງ
function dec2bin(dec){ return (dec >>> 0).toString(2); }
ການປ່ຽນວິສະວະດັບສອງໃຫ້ວິສະວະສິບ
ຄວາມຄິດຕາມຄວາມຈິງ
function bin2dec(bin){ return parseInt(bin, 2).toString(10); }
- ບ່ອນໜ້າທຳນາຍ JS ການສ້າງການກະຈາຍ
- ບ່ອນໜ້າຫຼັງ JS ການສ້າງການຕິດຕາມ