DevToys Web Pro iconDevToys Web Proబ్లాగ్
మాకు రేటింగ్ ఇవ్వండి:
బ్రౌజర్ ఎక్స్‌టెన్షన్‌ను ప్రయత్నించండి:

VarInt ఎన్‌కోడర్ / డీకోడర్

12 బైట్లు
మోడ్

దశాంశ విలువలు

  • VarInt అవుట్‌పుట్

  • సాంకేతిక వివరాలు

    VarInt ఎన్‌కోడర్ / డీకోడర్ ఎలా పనిచేస్తుంది

    ఈ టూల్ ఏమి చేస్తుంది

    VarInt టూల్ unsigned integer‌లను Protobuf-స్టైల్ LEB128 వేరియబుల్-లెంగ్త్ integer‌లుగా ఎన్‌కోడ్ చేసి, బైనరీ VarInt స్ట్రీమ్‌లను తిరిగి integer లిస్ట్‌లుగా డీకోడ్ చేస్తుంది. ప్రతి విలువ దాని పరిమాణాన్ని బట్టి 1–10 బైట్లలో ఎన్‌కోడ్ అవుతుంది; ప్రతి బైట్‌లోని హై బిట్ మరిన్ని బైట్లు వస్తాయా లేదో సూచిస్తుంది. అవుట్‌పుట్‌ను బైట్ అర్రే, హెక్సాడెసిమల్, లేదా Base64 రూపంలో చూపిస్తుంది, టెస్టులు మరియు ఫిక్చర్‌లలో సులభంగా ఎంబెడ్ చేయడానికి.

    డెవలపర్ల సాధారణ వినియోగ సందర్భాలు

    Protobuf వైర్-ఫార్మాట్ పేలోడ్‌లను డీబగ్ చేసే ఇంజినీర్లు పూర్తి Protobuf రన్‌టైమ్‌ను ప్రారంభించకుండా ఫీల్డ్ ట్యాగ్‌లు మరియు unsigned integer ఫీల్డ్ విలువలను పరిశీలించడానికి VarInt ఎన్‌కోడ్/డీకోడ్‌ను ఉపయోగిస్తారు. Bitcoin మరియు ఇతర క్రిప్టోకరెన్సీ డెవలపర్లు VarInt-ఎన్‌కోడ్ చేసిన స్క్రిప్ట్ లెంగ్త్‌లు మరియు ట్రాన్సాక్షన్ కౌంట్‌లను పార్స్ చేస్తారు. చిన్న సంఖ్యలకు కాంపాక్ట్‌గా ఉండటం వల్ల LEB128‌ను స్వీకరించే కస్టమ్ బైనరీ ప్రోటోకాల్‌లను రివర్స్-ఇంజినీరింగ్ చేస్తున్నప్పుడు కూడా ఈ టూల్ సహాయకారిగా ఉంటుంది.

    డేటా ఫార్మాట్‌లు, రకాలు, లేదా వేరియంట్లు

    LEB128 (Little-Endian Base 128) ప్రతి బైట్‌కు 7 పేలోడ్ బిట్‌లను ఉత్పత్తి చేస్తుంది; అత్యంత ముఖ్యమైన బిట్ continuation ఫ్లాగ్‌గా పనిచేస్తుంది. చిన్న సంఖ్యలు (0–127) ఒకే బైట్‌ను ఉపయోగిస్తాయి; 16,383 వరకు ఉన్న సంఖ్యలు రెండు బైట్లు ఉపయోగిస్తాయి; అలాగే కొనసాగుతుంది. ఇన్‌పుట్‌లు whitespace, కామాలు, లేదా న్యూ‌లైన్‌లతో వేరు చేసిన డెసిమల్ సంఖ్యలను స్వీకరిస్తాయి. అవుట్‌పుట్‌లు హెక్సాడెసిమల్, Base64, మరియు రా బైట్ అర్రే నోటేషన్‌లో అందుబాటులో ఉంటాయి. Signed integer‌లను ముందుగా ZigZag ట్రాన్స్‌ఫార్మేషన్ (n << 1) ^ (n >> 31) అప్లై చేసి ఎన్‌కోడ్ చేయవచ్చు.

    సాధారణ తప్పిదాలు మరియు ఎడ్జ్ కేసులు

    JavaScript సంఖ్య ప్రెసిషన్ 2^53 − 1 వరకు మాత్రమే; Number.MAX_SAFE_INTEGER కంటే పై విలువలను సురక్షితంగా ఎన్‌కోడ్ చేయలేము. ట్రంకేట్ అయిన VarInt స్ట్రీమ్‌లు (టెర్మినేటర్ బైట్ లేకపోవడం) భాగంగా మాత్రమే డీకోడ్ అయి, ఆఫ్‌సెట్‌ను సూచించే ఎర్రర్‌ను తిరిగి ఇస్తాయి. నెగటివ్ సంఖ్యలను నేరుగా ఎన్‌కోడ్ చేయలేరు — ముందుగా ZigZag ఎన్‌కోడింగ్ ఉపయోగించండి. Base64 ప్యాడింగ్ తొలగించబడే అవకాశం ఉన్న స్క్రీన్‌షాట్‌ల నుంచి VarInt బైట్లను కాపీ చేయడం నివారించండి; ప్యాడింగ్ లేకపోతే బైట్ బౌండరీలు మారిపోతాయి.

    కోడ్‌తో పోల్చితే ఈ టూల్‌ను ఎప్పుడు ఉపయోగించాలి

    డీబగ్గింగ్ సమయంలో లేదా టెస్టులు రాస్తున్నప్పుడు Protobuf వైర్ బైట్లను త్వరగా పరిశీలించడానికి ఈ బ్రౌజర్ టూల్‌ను ఉపయోగించండి. ప్రొడక్షన్ ఎన్‌కోడింగ్ కోసం భాష-నేటివ్ VarInt లైబ్రరీలను (`varint` on npm, Go యొక్క encoding/binary లో `binary.varint`, Python యొక్క google.protobuf.internal లో `decode_varint`) ఉపయోగించండి; ఇవి స్ట్రీమింగ్, ఎర్రర్ రికవరీ, మరియు ZigZag ట్రాన్స్‌ఫార్మేషన్‌ను ఒకే కాల్‌లో నిర్వహిస్తాయి.