JavaScript Bitwise Operations

JavaScript பிட்வைஸ் செயல்பாடுகள்

கணினியில் பிட்கள்

கணினிகள் தரவை பைனரி வடிவத்தில் (0கள் மற்றும் 1கள்) சேமிக்கின்றன. இந்த ஒவ்வொரு 0 அல்லது 1 ஒரு பிட் என்று அழைக்கப்படுகிறது.

JavaScript பிட்வைஸ் செயல்பாடுகள் இந்த பிட்களின் அடிப்படையில் செயல்படும் கணித செயல்பாடுகள்.

💡 பிட் என்றால் என்ன?

பிட் (Bit) = Binary Digit (பைனரி இலக்கம்). இது கணினியில் தரவின் மிகச்சிறிய அலகு. ஒரு பிட் 0 அல்லது 1 மதிப்பை மட்டுமே கொள்ளும்.

JavaScript பிட்வைஸ் செயலிகள்

செயலி பெயர் விளக்கம்
& AND இரு பிட்களும் 1 ஆக இருந்தால் மட்டும் ஒவ்வொரு பிட்டையும் 1 ஆக்குகிறது
| OR இரு பிட்களில் ஒன்று 1 ஆக இருந்தால் ஒவ்வொரு பிட்டையும் 1 ஆக்குகிறது
^ XOR இரு பிட்கள் வித்தியாசமாக இருந்தால் மட்டும் ஒவ்வொரு பிட்டையும் 1 ஆக்குகிறது
~ NOT அனைத்து பிட்களையும் தலைகீழாக மாற்றுகிறது
<< Zero fill left shift வலது பக்கத்திலிருந்து பூஜ்ஜியங்களைத் தள்ளி இடது பக்கமாக மாற்றுகிறது, இடதுபுற பிட்கள் விடுபடுகின்றன
>> Signed right shift இடதுபுறத்திலிருந்து இடதுபுற பிட்டின் நகல்களைத் தள்ளி வலது பக்கமாக மாற்றுகிறது, வலதுபுற பிட்கள் விடுபடுகின்றன
>>> Zero fill right shift இடதுபுறத்திலிருந்து பூஜ்ஜியங்களைத் தள்ளி வலது பக்கமாக மாற்றுகிறது, வலதுபுற பிட்கள் விடுபடுகின்றன

எடுத்துக்காட்டுகள்

செயல்பாடு முடிவு அதே போன்றது முடிவு
5 & 1 1 0101 & 0001 0001
5 | 1 5 0101 | 0001 0101
~ 5 10 ~0101 1010
5 << 1 10 0101 << 1 1010
5 ^ 1 4 0101 ^ 0001 0100
5 >> 1 2 0101 >> 1 0010
5 >>> 1 2 0101 >>> 1 0010

JavaScript 32 பிட்களைப் பயன்படுத்துகிறது

JavaScript எண்களை 64 பிட் மிதவை புள்ளி எண்களாக சேமிக்கிறது, ஆனால் அனைத்து பிட்வைஸ் செயல்பாடுகளும் 32 பிட் பைனரி எண்களில் செய்யப்படுகின்றன.

ஒரு பிட்வைஸ் செயல்பாடு செய்யப்படுவதற்கு முன், JavaScript எண்களை 32 பிட் கையொப்பமிடப்பட்ட முழு எண்களாக மாற்றுகிறது.

பிட்வைஸ் செயல்பாடு செய்யப்பட்ட பிறகு, முடிவு 64 பிட் JavaScript எண்களாக மாற்றப்படுகிறது.

⚠️ 4 பிட் vs 32 பிட்:

மேலே உள்ள எடுத்துக்காட்டுகள் 4 பிட் கையொப்பமிடப்படாத பைனரி எண்களைப் பயன்படுத்துகின்றன. இதனால்தான் ~ 5, 10 ஐ வழங்குகிறது.

JavaScript 32 பிட் கையொப்பமிடப்பட்ட முழு எண்களைப் பயன்படுத்துவதால், இது 10 ஐ வழங்காது. இது -6 ஐ வழங்கும்.

// 32 பிட் பைனரி பிரதிநிதித்துவம்
00000000000000000000000000000101 (5)

// பிட்வைஸ் NOT (~5)
11111111111111111111111111111010 (~5 = -6)

கையொப்பமிடப்பட்ட முழு எண் இடதுபுற பிட்டை மைனஸ் அடையாளமாகப் பயன்படுத்துகிறது.

பிட்வைஸ் செயல்பாடுகள்

பிட்வைஸ் AND (&)

இரு பிட்களும் 1 ஆக இருந்தால் மட்டும் 1 ஐ வழங்குகிறது:

5 (பைனரி) 00000101
1 (பைனரி) 00000001
5 & 1 00000001 (1)

பிட்வைஸ் OR (|)

இரு பிட்களில் ஒன்று 1 ஆக இருந்தால் 1 ஐ வழங்குகிறது:

5 (பைனரி) 00000101
1 (பைனரி) 00000001
5 | 1 00000101 (5)

பிட்வைஸ் XOR (^)

இரு பிட்கள் வித்தியாசமாக இருந்தால் 1 ஐ வழங்குகிறது:

5 (பைனரி) 00000101
1 (பைனரி) 00000001
5 ^ 1 00000100 (4)

பிட்வைஸ் NOT (~)

அனைத்து பிட்களையும் தலைகீழாக மாற்றுகிறது:

5 (பைனரி) 00000101
~5 11111010 (-6)

நேரடி டெமோக்கள்

அடிப்படை பிட்வைஸ் செயல்பாடுகள்

முடிவு:

ஷிப்ட் செயல்பாடுகள்

முடிவு:

ஒதுக்கீடு செயலிகள்

மாறி மதிப்புகள்:

பைனரி எண்கள்

ஒரே ஒரு பிட் அமைக்கப்பட்ட பைனரி எண்களை புரிந்துகொள்வது எளிது:

பைனரி பிரதிநிதித்துவம் தசம மதிப்பு
00000000000000000000000000000001 1
00000000000000000000000000000010 2
00000000000000000000000000000100 4
00000000000000000000000000001000 8
00000000000000000000000000010000 16

இன்னும் சில பிட்களை அமைப்பது பைனரி முறையை வெளிப்படுத்துகிறது:

பைனரி பிரதிநிதித்துவம் தசம மதிப்பு
00000000000000000000000000000101 5 (4 + 1)
00000000000000000000000000001101 13 (8 + 4 + 1)
00000000000000000000000000101101 45 (32 + 8 + 4 + 1)
உலகில் 10 வகையான மக்கள் மட்டுமே உள்ளனர்: பைனரியை புரிந்துகொள்ளும் மக்கள் மற்றும் புரிந்துகொள்ளாத மக்கள்.
(10 in binary = 2 in decimal)

மாற்றும் செயல்பாடுகள்

தசமத்தை பைனரியாக மாற்றுதல்

function dec2bin(dec) {
  return (dec >>> 0).toString(2);
}

பைனரியை தசமமாக மாற்றுதல்

function bin2dec(bin) {
  return parseInt(bin, 2).toString(10);
}

மாற்றுதல் டெமோ

மாற்றல் முடிவுகள்:

JavaScript பயிற்சிகள்

இந்த டுடோரியலில் உள்ள பல அத்தியாயங்கள் உங்கள் அறிவு நிலையைச் சரிபார்க்கக்கூடிய பயிற்சியுடன் முடிகின்றன.

பைனரி எண் 010 எந்த எண்ணைக் குறிக்கிறது?

0
முதல் பிட்
1
இரண்டாம் பிட்
0
மூன்றாம் பிட்
1
✗ தவறு! 1 என்பது பைனரியில் 001 ஆகும்
2
✓ சரி! 010 = (0×4) + (1×2) + (0×1) = 2
10
✗ தவறு! 10 என்பது தசம எண். பைனரி 010 என்பது தசம 2 க்கு சமம்