அடிப்படை மாற்றம் எவ்வாறு வேலை செய்கிறது
ஒவ்வொரு positional numeral system ம் ஒரு மதிப்பை அடிப்படையின் சக்திகளால் பெருக்கப்பட்ட digits இன் கூட்டுத்தொகையாக குறிக்கிறது. அடிப்படைகளை மாற்றுவது என்பது அதே மதிப்பை வேறு power series க்கு எதிராக மீண்டும் எழுதுவதாகும்.
- உள்ளீட்டு alphabet ஐ சரிபார்க்கவும். ஒவ்வொரு அடிப்படையும் ஒரு குறிப்பிட்ட digit தொகுப்பை ஏற்கிறது. Binary 0 மற்றும் 1 ஏற்கிறது; octal 0-7 ஏற்கிறது; decimal 0-9 ஏற்கிறது; hex 0-9 மற்றும் A-F ஏற்கிறது. தேர்ந்தெடுத்த alphabet க்கு வெளியே ஒரு எழுத்து எந்த மாற்றமும் இயங்குவதற்கு முன்பு inline பிழையை surface செய்கிறது.
- மதிப்பை பாகுபடுத்தவும். JavaScript Number ல் fit ஆகும் மதிப்புகளுக்கு (2^53-1 வரை) கருவி
parseInt(text, base)அழைக்கிறது. அந்த வரம்புக்கு மேல் மாற்றம் தன்னிச்சையாக பெரிய integers க்கு சரியாக இருக்கும் வகையில்BigIntக்கு fallback ஆகிறது. - ஒவ்வொரு target அடிப்படையிலும் மீண்டும் render செய்யவும். பாகுபடுத்தப்பட்ட மதிப்பு
Number.prototype.toString(base)அல்லதுBigInt.prototype.toString(base)மூலம் ஒவ்வொரு வெளியீட்டு அடிப்படைக்கும் மாற்றப்படுகிறது. நான்கு நிலையான panes (binary, octal, decimal, hex) மற்றும் custom-base pane சேர்ந்து புதுப்பிக்கப்படுகின்றன. - வடிவமைத்தல் பயன்படுத்தவும். Prefix toggle binary, octal மற்றும் hex வெளியீட்டின் முன்பு 0b, 0o அல்லது 0x சேர்க்கிறது. Digit grouping ஒவ்வொரு நான்கு binary digits க்கும் மற்றும் ஒவ்வொரு இரண்டு hex digits க்கும் underscore செருகுகிறது. Hex case toggle A-F க்கு பெரிய அல்லது சிறிய எழுத்துக்களை தேர்ந்தெடுக்கிறது.
- நேரடி cross-pane sync. எந்த pane ஐயும் திருத்துவது 100 ms debounced re-conversion trigger செய்கிறது, அது மற்ற panes ஐ புதுப்பிக்கிறது. நீங்கள் தட்டச்சு செய்யும் pane ஒவ்வொரு keystroke ல் truth இன் source ஆக கையாளப்படுகிறது.
அடிப்படை மாற்றியை ஏன் பயன்படுத்த வேண்டும்
- Memory dumps படிக்கவும். Debuggers, disassemblers மற்றும் core-dump viewers hex ல் addresses மற்றும் register மதிப்புகளை காட்டுகின்றன. அவற்றை decimal க்கு மொழிபெயர்ப்பது அதே trace ல் வேறு இடங்களில் தெரிவிக்கப்படும் counts, sizes மற்றும் offsets உடன் compare செய்ய அனுமதிக்கிறது.
- Color codes உடன் வேலை செய்யவும். CSS, design tools மற்றும் image formats #d2511a போன்ற hex triplets ல் colors எழுதுகின்றன. ஒவ்வொரு pair ஐ decimal க்கு மாற்றுவது அதே நிறத்தை உங்கள் color picker அல்லது accessibility checker எதிர்பார்க்கும் rgb(210, 81, 26) வடிவமாக மாற்றுகிறது.
- File permissions decode செய்யவும். Unix chmod மதிப்புகள் octal ல் எழுதப்படுகின்றன: ஒவ்வொரு octal digit ஐயும் அதன் மூன்று binary bits ஆக மொழிபெயர்த்தால் 755 rwxr-xr-x ஐ அர்த்தமாக்குகிறது. Converter man page தேட வேண்டாமல் ஒரு படியில் அந்த mapping காட்டுகிறது.
- Bit flags debug செய்யவும். Network protocols, kernel syscalls மற்றும் hardware registers பல boolean flags ஒரு single integer ல் pack செய்கின்றன. Integer ஐ binary ல் படிப்பது எந்த bits set ஆக இருக்கின்றன என்று ஒரே பார்வையில் காட்டுகிறது, ஒரு flag ஏன் effect ஆவதில்லை என்று தேடும்போது இது தேவைப்படுகிறது.
பொதுவான பயன்பாடுகள்
ஒரு எண் வெறும் count அல்ல என்றால் தினசரி developer, security மற்றும் hardware வேலையில் அடிப்படை மாற்றம் தோன்றுகிறது.
- Embedded firmware: JTAG probe இலிருந்து hex dump படிக்கவும், ஒரு function இன் address கண்டுபிடிக்கவும், மற்றும் உங்கள் debugger script ஏற்கும் decimal offset பயன்படுத்தி breakpoint command எழுதவும்.
- Network security: prefix length count செய்ய dotted-decimal ல் printed 32-bit netmask ஐ binary ஆக பாகுபடுத்தவும், பிறகு ACL rule க்கு CIDR வடிவம் எழுதவும்.
- CTF puzzles மற்றும் crypto challenges: XOR கீழ் ஒரு candidate plaintext க்கு எதிராக leaked key fragment compare செய்யும்போது hex, decimal மற்றும் binary இடையே மாறவும்.
ஒரு வேலை செய்யும் எடுத்துக்காட்டு
Decimal pane ல் 255 தட்டச்சு செய்யவும். Hex pane FF க்கு (prefix toggle இயக்கியிருந்தால் 0xFF) புதுப்பிக்கிறது, binary pane 11111111 க்கு (குழுவாக்கப்பட்டால் 1111_1111), மற்றும் octal pane 377 க்கு. Custom-pane radix ஐ 36 ஆக மாற்றவும், அதே மதிப்பு 73 ஆக render ஆகிறது. Decimal pane ல் 123456789012345678901234567890 போன்ற மிகவும் பெரிய மதிப்பை தட்டச்சு செய்யவும்; hex pane BigInt path பயன்படுத்தி 18EE90FF6C373E0EE4E3F0AD2 render ஆகிறது.
FAQ
எண் அடிப்படை என்றால் என்ன?
ஒரு எண் அடிப்படை, அல்லது radix, ஒரு positional system அடுத்த நிலைக்கு carry செய்வதற்கு முன்பு பயன்படுத்தும் தனித்துவமான digits எத்தனை என்று குறிக்கிறது. Decimal (அடிப்படை 10) 0-9 பயன்படுத்துகிறது; binary (அடிப்படை 2) வெறும் 0 மற்றும் 1 பயன்படுத்துகிறது; hexadecimal (அடிப்படை 16) 0-9 plus A-F பயன்படுத்துகிறது. அடிப்படைகளை மாற்றும்போது ஒரு எண்ணின் மதிப்பு மாறுவதில்லை — அதன் digits எவ்வாறு எழுதப்படுகின்றன மற்றும் குழுவாக்கப்படுகின்றன என்பது மட்டுமே மாறுகிறது.
Programming ல் hexadecimal ஏன் பயன்படுத்துவது?
ஒரு hex digit சரியாக நான்கு binary bits க்கு map ஆகிறது, எனவே இரண்டு hex digits ஒரு byte உள்ளடக்கி மற்றும் எட்டு hex digits ஒரு 32-bit word உள்ளடக்குகின்றன. இது memory addresses, register contents, color triplets மற்றும் cryptographic keys க்கு மிகவும் compact human-readable வடிவமாக hex ஐ மாற்றுகிறது. 0xFF படிப்பது 11111111 படிப்பதை விட வேகமானது, மற்றும் bit pattern தேவைப்பட்டால் அங்கேயே இருக்கிறது.
Base 36 க்கு அப்பால் மாற்ற முடியுமா?
இந்த கருவி base 36 ல் நிறுத்துகிறது, ஏனெனில் அது native JavaScript parseInt மற்றும் toString APIs இன் மேல் வரம்பு, இவை digit alphabet ஆக 0-9 தொடர்ந்து A-Z ஏற்கின்றன. Bases 37-62 custom alphabet உடன் சாத்தியம் (Bitcoin addresses ல் பயன்படும் Base58 ஒரு உதாரணம்) ஆனால் அவை தனி கருவியாக track செய்யப்படுகின்றன, ஏனெனில் ஒவ்வொரு உயர் அடிப்படைக்கும் அதன் சொந்த canonical digit ordering தேவைப்படுகிறது.
இது negative numbers மற்றும் floats கையாளுகிறதா?
Negative integers ஒவ்வொரு அடிப்படையிலும் leading minus sign உடன் render ஆகுகின்றன, Number.prototype.toString ship செய்யும் அதே behaviour. தேர்ந்தெடுத்த bit width (8, 16, 32, 64) முழுவதும் two's-complement representation நாங்கள் சேர்க்கத் திட்டமிடும் ஒரு தனி view. Floating-point அடிப்படை மாற்றமும் இந்த version இன் வரம்பிற்கு வெளியே; கருவி integer மதிப்புகளை மட்டுமே கையாளுகிறது.
அடிப்படை மாற்றம் firmware, security மற்றும் graphics வேலையில் மீண்டும் மீண்டும் வரும் ஒரு சிறிய வேலை. Node மற்றும் V8 ஏற்கனவே ship செய்யும் அதே arithmetic primitives உடன் ஒரு உலாவி tab ல் செய்வது வேலையை வேகமாக வைக்கிறது மற்றும் தரவை உங்கள் இயந்திரத்தில் வைக்கிறது.