مسیرها
/
PHP
PHP
/
تمرین‌ها
/
کمیت با طول متغیر
کمیت با طول متغیر

کمیت با طول متغیر

آسان

دستورالعمل‌ها

کدگذاری و کدگشایی «کمیت با طول متغیر» را پیاده‌سازی کنید.

هدف این تمرین پیاده‌سازی کدگذاری/کدگشایی VLQ است.

به‌طور خلاصه، هدف این کدگذاری آن است که مقادیر عدد صحیح را طوری کدگذاری کند که در مصرف بایت صرفه‌جویی شود. تنها ۷ بیت اول هر بایت معنادار است (راست‌چین؛ تقریباً مثل یک بایت ASCII). بنابراین اگر یک مقدار ۳۲ بیتی داشته باشید، باید آن را به مجموعه‌ای از بایت‌های ۷ بیتی تجزیه کنید. البته تعداد بایت‌ها بسته به عدد صحیح شما متغیر خواهد بود. برای نشان دادن اینکه کدام بایت آخرین بایت مجموعه است، بیت شماره‌ی ۷ را صفر می‌گذارید. در همه‌ی بایت‌های پیشین، بیت شماره‌ی ۷ را یک می‌کنید.

پس اگر یک عدد صحیح بین 0-127 باشد، می‌توان آن را با یک بایت نمایش داد. هرچند VLQ می‌تواند با اعدادی با هر اندازه‌ای کار کند، در این تمرین خودمان را فقط به اعدادی محدود می‌کنیم که در یک عدد صحیح بدون علامت ۳۲ بیتی جا می‌شوند. در ادامه نمونه‌هایی از اعداد صحیح به‌صورت مقادیر ۳۲ بیتی و کمیت‌های با طول متغیرِ متناظرشان آمده است:

 NUMBER        VARIABLE QUANTITY
00000000              00
00000040              40
0000007F              7F
00000080             81 00
00002000             C0 00
00003FFF             FF 7F
00004000           81 80 00
00100000           C0 80 00
001FFFFF           FF FF 7F
00200000          81 80 80 00
08000000          C0 80 80 00
0FFFFFFF          FF FF FF 7F
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
PHP Exercism

آماده‌اید کمیت با طول متغیر را شروع کنید؟

در Exercism ثبت‌نام کنید تا PHP را همراه با 11 مفهوم122 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.