బేస్ కన్వర్షన్ ఎలా పనిచేస్తుంది
ప్రతి పొజిషనల్ న్యూమెరల్ సిస్టమ్ ఒక విలువను బేస్ యొక్క పవర్లతో గుణించిన అంకెల మొత్తంగా సూచిస్తుంది. బేస్లు మార్చడం అంటే అదే విలువను వేరే పవర్ సీరీస్ వ్యతిరేకంగా తిరిగి వ్రాయడం.
- ఇన్పుట్ ఆల్ఫాబెట్ వ్యాలిడేట్ చేయండి. ప్రతి బేస్ నిర్దిష్ట డిజిట్ సెట్ అంగీకరిస్తుంది. బైనరీ 0 మరియు 1 అంగీకరిస్తుంది; ఆక్టల్ 0-7 అంగీకరిస్తుంది; డెసిమల్ 0-9 అంగీకరిస్తుంది; హెక్స్ 0-9 మరియు A-F అంగీకరిస్తుంది. ఎంచుకున్న ఆల్ఫాబెట్ వెలుపల అక్షరం ఏ కన్వర్షన్ నడిచే ముందు ఇన్లైన్ ఎర్రర్ చూపిస్తుంది.
- విలువ పార్స్ చేయండి. JavaScript Number లో ఫిట్ అయ్యే విలువలకు (2^53-1 వరకు) టూల్
parseInt(text, base)పిలుస్తుంది. ఆ సరిహద్దుకు పైన అదిBigIntకు ఫాల్బ్యాక్ చేస్తుంది కాబట్టి మనస్వేచ్ఛగా పెద్ద పూర్ణసంఖ్యలకు కన్వర్షన్ ఖచ్చితంగా ఉంటుంది. - ప్రతి టార్గెట్ బేస్లో మళ్ళీ రెండర్ చేయండి. పార్స్ చేసిన విలువ
Number.prototype.toString(base)లేదాBigInt.prototype.toString(base)ద్వారా ప్రతి ఔట్పుట్ బేస్కు మార్చబడుతుంది. నాలుగు ప్రామాణిక పానెల్లు (బైనరీ, ఆక్టల్, డెసిమల్, హెక్స్) మరియు కస్టమ్-బేస్ పానెల్ కలిసి అప్డేట్ అవుతాయి. - ఫార్మాటింగ్ వర్తించండి. ప్రిఫిక్స్ టోగుల్ బైనరీ, ఆక్టల్, మరియు హెక్స్ ఔట్పుట్ ముందు 0b, 0o, లేదా 0x జోడిస్తుంది. డిజిట్ గ్రూపింగ్ ప్రతి నాలుగు బైనరీ అంకెలు మరియు ప్రతి రెండు హెక్స్ అంకెలకు అండర్స్కోర్ చొప్పిస్తుంది. హెక్స్ కేస్ టోగుల్ A-F కోసం అప్పర్కేస్ లేదా లోయర్కేస్ అక్షరాలు ఎంచుకుంటుంది.
- లైవ్ క్రాస్-పానెల్ సింక్. ఏ పానెల్ సవరించినా 100 ms డీబౌన్స్డ్ రీ-కన్వర్షన్ ట్రిగ్గర్ చేస్తుంది మరియు మిగతా పానెల్లు అప్డేట్ అవుతాయి. మీరు టైప్ చేస్తున్న పానెల్ ప్రతి కీస్ట్రోక్లో ట్రూత్ సోర్స్గా చికిత్సించబడుతుంది.
బేస్ కన్వర్టర్ ఎందుకు ఉపయోగించాలి
- మెమరీ డంప్లు చదవడం. డీబగ్గర్లు, డిసాసెంబ్లర్లు, మరియు కోర్-డంప్ వ్యూయర్లు అడ్రెస్లు మరియు రిజిస్టర్ విలువలు హెక్స్లో చూపిస్తాయి. వాటిని డెసిమల్కు అనువదించడం వల్ల అదే ట్రేస్లో వేరే చోట రిపోర్ట్ చేయబడిన కౌంట్లు, పరిమాణాలు, మరియు ఆఫ్సెట్లతో పోల్చదగినవి అవుతాయి.
- కలర్ కోడ్లతో పని చేయడం. CSS, డిజైన్ టూల్లు, మరియు ఇమేజ్ ఫార్మాట్లు రంగులు #d2511a వంటి హెక్స్ ట్రిప్లెట్లలో వ్రాస్తాయి. ప్రతి జత డెసిమల్కు మారిస్తే అదే రంగు మీ కలర్ పికర్ లేదా యాక్సెసిబిలిటీ చెకర్ ఆశించే rgb(210, 81, 26) రూపంగా మారుతుంది.
- ఫైల్ పర్మిషన్లు డీకోడ్ చేయడం. Unix chmod విలువలు ఆక్టల్లో వ్రాయబడతాయి: 755 అంటే ప్రతి ఆక్టల్ అంకెను దాని మూడు బైనరీ బిట్లుగా అనువదించిన తర్వాత rwxr-xr-x అర్థమవుతుంది. కన్వర్టర్ ఆ మ్యాపింగ్ను ఒక్క దశలో చూపిస్తుంది కాబట్టి మీరు మ్యాన్ పేజీ వెతకకుండా పర్మిషన్ సెట్ తనిఖీ చేయవచ్చు.
- బిట్ ఫ్లాగ్లు డీబగ్ చేయడం. నెట్వర్క్ ప్రోటోకాల్లు, కెర్నల్ సిస్కాల్లు, మరియు హార్డ్వేర్ రిజిస్టర్లు చాలా బూలియన్ ఫ్లాగ్లను ఒక పూర్ణసంఖ్యలో ప్యాక్ చేస్తాయి. పూర్ణసంఖ్యను బైనరీలో చదవడం ఏ బిట్లు సెట్ అయ్యాయో చూపిస్తుంది, ఒక ఫ్లాగ్ ఎందుకు ఎఫెక్ట్ లేకపోతోందో వెంబడించేటప్పుడు ఇది అవసరం.
సాధారణ అప్లికేషన్లు
రోజువారీ డెవలపర్, సెక్యూరిటీ, మరియు హార్డ్వేర్ పనిలో సంఖ్య కేవలం కౌంట్ కంటే ఎక్కువ అయినప్పుడు బేస్ కన్వర్షన్ కనిపిస్తుంది.
- ఎంబెడెడ్ ఫర్మ్వేర్: JTAG ప్రోబ్ నుండి హెక్స్ డంప్ చదవడం, ఫంక్షన్ అడ్రెస్ కనుగొనడం, మరియు మీ డీబగ్గర్ స్క్రిప్ట్ అంగీకరించే డెసిమల్ ఆఫ్సెట్ ఉపయోగించి బ్రేక్పాయింట్ కమాండ్ వ్రాయడం.
- నెట్వర్క్ సెక్యూరిటీ: ప్రిఫిక్స్ లెంగ్త్ లెక్కించడానికి డాటెడ్-డెసిమల్లో ప్రింట్ చేసిన 32-బిట్ నెట్మాస్క్ను తిరిగి బైనరీలోకి పార్స్ చేయడం, అప్పుడు ACL రూల్ కోసం CIDR రూపం వ్రాయడం.
- CTF పజిల్లు మరియు క్రిప్టో ఛాలెంజ్లు: XOR కింద లీక్ అయిన కీ ఫ్రాగ్మెంట్ను అభ్యర్థి ప్లెయిన్టెక్స్ట్తో పోల్చేటప్పుడు హెక్స్, డెసిమల్, మరియు బైనరీ మధ్య ఫ్లిప్ చేయడం.
పని చేసిన ఉదాహరణ
డెసిమల్ పానెల్లో 255 టైప్ చేయండి. హెక్స్ పానెల్ FF కి (ప్రిఫిక్స్ టోగుల్ ఆన్తో 0xFF కి), బైనరీ పానెల్ 11111111 కి (1111_1111 గా గ్రూప్ చేయబడి), మరియు ఆక్టల్ పానెల్ 377 కి అప్డేట్ అవుతుంది. కస్టమ్-పానెల్ రాడిక్స్ను 36 కి మార్చండి మరియు అదే విలువ 73 గా రెండర్ అవుతుంది. డెసిమల్ పానెల్లో 123456789012345678901234567890 వంటి చాలా పెద్ద విలువ టైప్ చేయండి; హెక్స్ పానెల్ BigInt పాత్ను ఉపయోగిస్తుంది మరియు 18EE90FF6C373E0EE4E3F0AD2 రెండర్ చేస్తుంది.
FAQ
నంబర్ బేస్ అంటే ఏమిటి?
నంబర్ బేస్, లేదా రాడిక్స్, పొజిషనల్ సిస్టమ్ తదుపరి పొజిషన్లోకి క్యారీ చేయడానికి ముందు ఉపయోగించే వేర్వేరు అంకెల సంఖ్య. డెసిమల్ (బేస్ 10) 0-9 ఉపయోగిస్తుంది; బైనరీ (బేస్ 2) కేవలం 0 మరియు 1 ఉపయోగిస్తుంది; హెక్సాడెసిమల్ (బేస్ 16) 0-9 ప్లస్ A-F ఉపయోగిస్తుంది. మీరు బేస్లు మారించినప్పుడు సంఖ్య విలువ మారదు — కేవలం దాని అంకెలు ఎలా వ్రాయబడతాయో మరియు సమూహపరచబడతాయో మాత్రమే మారుతుంది.
ప్రోగ్రామింగ్లో హెక్సాడెసిమల్ ఎందుకు ఉపయోగించాలి?
ఒక హెక్స్ అంకె సరిగ్గా నాలుగు బైనరీ బిట్లకు మ్యాప్ అవుతుంది, కాబట్టి రెండు హెక్స్ అంకెలు ఒక బైట్ను మరియు ఎనిమిది హెక్స్ అంకెలు 32-బిట్ వర్డ్ను కవర్ చేస్తాయి. ఇది మెమరీ అడ్రెస్లు, రిజిస్టర్ కంటెంట్లు, కలర్ ట్రిప్లెట్లు, మరియు క్రిప్టోగ్రాఫిక్ కీలకు హెక్స్ను అత్యంత కాంపాక్ట్ మానవ-చదవగలిగే రూపం చేస్తుంది. 0xFF చదవడం 11111111 చదవడం కంటే వేగంగా ఉంటుంది, మరియు మీకు అవసరమైతే బిట్ పాటర్న్ అక్కడే ఉంటుంది.
నేను బేస్ 36 కంటే మించి మార్చగలనా?
ఈ టూల్ బేస్ 36 వద్ద ఆగుతుంది ఎందుకంటే అది నేటివ్ JavaScript parseInt మరియు toString API యొక్క ఎగువ పరిమితి, ఇవి డిజిట్ ఆల్ఫాబెట్గా 0-9 తర్వాత A-Z అంగీకరిస్తాయి. బేస్లు 37-62 కస్టమ్ ఆల్ఫాబెట్తో సాధ్యమే (Bitcoin అడ్రెస్లలో ఉపయోగించే Base58 ఒక ఉదాహరణ) కానీ ప్రతి అధిక బేస్కు దాని స్వంత కానోనికల్ డిజిట్ ఆర్డరింగ్ అవసరం కాబట్టి అవి ప్రత్యేక టూల్గా ట్రాక్ చేయబడతాయి.
ఇది నెగటివ్ సంఖ్యలు మరియు ఫ్లోట్లు నిర్వహిస్తుందా?
నెగటివ్ పూర్ణసంఖ్యలు ప్రతి బేస్లో లీడింగ్ మైనస్ సైన్తో రెండర్ చేయబడతాయి, Number.prototype.toString తో వచ్చే అదే ప్రవర్తన. ఎంచుకున్న బిట్ వెడల్పు (8, 16, 32, 64) అంతటా Two's-కాంప్లిమెంట్ రిప్రజెంటేషన్ మేము జోడించాలని ప్లాన్ చేస్తున్న ప్రత్యేక వ్యూ. ఫ్లోటింగ్-పాయింట్ బేస్ కన్వర్షన్ కూడా ఈ వెర్షన్ పరిధికి వెలుపల; టూల్ కేవలం పూర్ణసంఖ్య విలువలు మాత్రమే నిర్వహిస్తుంది.
బేస్ కన్వర్షన్ అనేది ఫర్మ్వేర్, సెక్యూరిటీ, మరియు గ్రాఫిక్స్ పనిలో పదే పదే వచ్చే చిన్న పని. బ్రౌజర్ ట్యాబ్లో, Node మరియు V8 ఇప్పటికే షిప్ చేసే అదే అంకగణిత ప్రిమిటివ్లతో చేయడం పనిని వేగంగా మరియు డేటాను మీ మెషీన్లో ఉంచుతుంది.