VarInt ಎನ್ಕೋಡರ್ / ಡಿಕೋಡರ್
ದಶಮಾಂಶ ಮೌಲ್ಯಗಳು
VarInt ಔಟ್ಪುಟ್
ತಾಂತ್ರಿಕ ವಿವರಗಳು
VarInt ಎನ್ಕೋಡರ್ / ಡಿಕೋಡರ್ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ
ಈ ಸಾಧನ ಏನು ಮಾಡುತ್ತದೆ
VarInt ಸಾಧನವು unsigned ಪೂರ್ಣಾಂಕಗಳನ್ನು Protobuf-ಶೈಲಿಯ LEB128 ವ್ಯತ್ಯಾಸ-ಉದ್ದದ ಪೂರ್ಣಾಂಕಗಳಾಗಿ ಎನ್ಕೋಡ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಬೈನರಿ VarInt ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಮತ್ತೆ ಪೂರ್ಣಾಂಕ ಪಟ್ಟಿಗಳಾಗಿ ಡಿಕೋಡ್ ಮಾಡುತ್ತದೆ. ಪ್ರತಿ ಮೌಲ್ಯವು ಅದರ ಪ್ರಮಾಣದ ಮೇಲೆ ಅವಲಂಬಿಸಿ 1–10 ಬೈಟ್ಗಳಲ್ಲಿ ಎನ್ಕೋಡ್ ಆಗುತ್ತದೆ; ಪ್ರತಿಯೊಂದು ಬೈಟ್ನ ಹೈ ಬಿಟ್ ಇನ್ನಷ್ಟು ಬೈಟ್ಗಳು ಮುಂದುವರೆಯುತ್ತವೆಯೇ ಎಂಬುದನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಔಟ್ಪುಟ್ ಅನ್ನು ಬೈಟ್ ಅರೆ, ಹೆಕ್ಸಾಡೆಸಿಮಲ್, ಅಥವಾ Base64 ರೂಪದಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತದೆ, ಟೆಸ್ಟ್ಗಳು ಮತ್ತು ಫಿಕ್ಸ್ಚರ್ಗಳಲ್ಲಿ ಸುಲಭವಾಗಿ ಎಂಬೆಡ್ ಮಾಡಲು.
ಡೆವಲಪರ್ಗಳ ಸಾಮಾನ್ಯ ಬಳಕೆ ಪ್ರಕರಣಗಳು
Protobuf ವೈರ್-ಫಾರ್ಮ್ಯಾಟ್ ಪೇಲೋಡ್ಗಳನ್ನು ಡಿಬಗ್ ಮಾಡುವ ಎಂಜಿನಿಯರ್ಗಳು ಸಂಪೂರ್ಣ Protobuf ರನ್ಟೈಮ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡದೇ ಫೀಲ್ಡ್ ಟ್ಯಾಗ್ಗಳು ಮತ್ತು unsigned ಪೂರ್ಣಾಂಕ ಫೀಲ್ಡ್ ಮೌಲ್ಯಗಳನ್ನು ಪರಿಶೀಲಿಸಲು VarInt ಎನ್ಕೋಡ್/ಡಿಕೋಡ್ ಅನ್ನು ಬಳಸುತ್ತಾರೆ. Bitcoin ಮತ್ತು ಇತರ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿ ಡೆವಲಪರ್ಗಳು VarInt-ಎನ್ಕೋಡ್ ಮಾಡಿದ ಸ್ಕ್ರಿಪ್ಟ್ ಉದ್ದಗಳು ಮತ್ತು ವ್ಯವಹಾರ ಎಣಿಕೆಗಳನ್ನು ಪಾರ್ಸ್ ಮಾಡುತ್ತಾರೆ. ಸಣ್ಣ ಸಂಖ್ಯೆಗಳಿಗಾಗಿ ಕಾಂಪ್ಯಾಕ್ಟ್ ಆಗಿರುವುದರಿಂದ LEB128 ಅನ್ನು ಅಳವಡಿಸಿಕೊಂಡ ಕಸ್ಟಮ್ ಬೈನರಿ ಪ್ರೋಟೋಕಾಲ್ಗಳನ್ನು ರಿವರ್ಸ್-ಎಂಜಿನಿಯರಿಂಗ್ ಮಾಡುವಾಗಲೂ ಈ ಸಾಧನ ಸಹಾಯಕವಾಗಿದೆ.
ಡೇಟಾ ಸ್ವರೂಪಗಳು, ಪ್ರಕಾರಗಳು, ಅಥವಾ ರೂಪಾಂತರಗಳು
LEB128 (Little-Endian Base 128) ಪ್ರತಿ ಬೈಟ್ಗೆ 7 ಪೇಲೋಡ್ ಬಿಟ್ಗಳನ್ನು ಹೊರಸೂಸುತ್ತದೆ; ಅತ್ಯಂತ ಮಹತ್ವದ ಬಿಟ್ ಮುಂದುವರಿಕೆ ಫ್ಲ್ಯಾಗ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಸಣ್ಣ ಸಂಖ್ಯೆಗಳು (0–127) ಒಂದು ಬೈಟ್ ಬಳಸುತ್ತವೆ; 16,383 ವರೆಗೆ ಇರುವ ಸಂಖ್ಯೆಗಳು ಎರಡು ಬೈಟ್ ಬಳಸುತ್ತವೆ; ಹೀಗೆ ಮುಂದುವರೆಯುತ್ತದೆ. ಇನ್ಪುಟ್ಗಳು ಖಾಲಿ ಜಾಗ, ಕಾಮಾ, ಅಥವಾ ಹೊಸ ಸಾಲುಗಳಿಂದ ಬೇರ್ಪಡಿಸಿದ ದಶಮಾಂಶ ಸಂಖ್ಯೆಗಳನ್ನೂ ಸ್ವೀಕರಿಸುತ್ತವೆ. ಔಟ್ಪುಟ್ಗಳು ಹೆಕ್ಸಾಡೆಸಿಮಲ್, Base64, ಮತ್ತು ರಾ ಬೈಟ್ ಅರೆ ಸಂಕೇತದಲ್ಲಿ ಲಭ್ಯವಿವೆ. Signed ಪೂರ್ಣಾಂಕಗಳನ್ನು ಮೊದಲು 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 ಪರಿವರ್ತನೆಯನ್ನು ಒಂದೇ ಕಾಲ್ನಲ್ಲಿ ನಿರ್ವಹಿಸುತ್ತವೆ.