BITS(1) User Commands BITS(1)

bits - ابزار بررسی و کار با مقادیر بیتی

bits [-h] [-V] [-w number] [mode] [mask|list]...

ابزار bits میان ماسک‌های بیتی و فهرست‌های بیتی تبدیل انجام می‌دهد. این ابزار از ترکیب چندین ماسک یا فهرست با استفاده از عملیات بیتی پشتیبانی می‌کند.

mask

مجموعه‌ای از بیت‌ها که به‌صورت یک مقدار ماسک هگزادسیمال مشخص شده‌اند (برای نمونه: 0xeec2).

list

مجموعه‌ای از بیت‌ها که به‌صورت فهرستی از شناسه‌های بیت جداشده با کاما مشخص شده‌اند (برای نمونه: 1,5,29,32).

اگر هیچ آرگومانی مشخص نشود، مجموعه‌های بیت از ورودی استاندارد، یک گروه در هر خط خوانده خواهند شد.

شناسه‌های متوالی را می‌توان به‌صورت بازه‌ها فشرده کرد (برای نمونه: 5,6,7,8,9,10 → 5-10).

به‌صورت اختیاری، اگر یک آرگومان با یک کاما آغاز شود، به‌صورت یک ماسک هگزادسیمال تکی که به گروه‌های ۳۲ بیتی تقسیم شده است تجزیه خواهد شد (برای نمونه: ,00014000,00000000,00020000 → 17,78,80).

به‌طور پیش‌فرض، تمام گروه‌ها با یکدیگر OR بیتی می‌شوند. اگر گروهی دارای یکی از پیشوندهای &، ^ یا ~ باشد، با استفاده از یک عملیات باینری متفاوت با ماسک حاصل ترکیب خواهد شد:

&mask|&list

گروه با یک عملیات AND باینری ترکیب خواهد شد. بدین معنا که: تمام بیت‌هایی که در گروه برابر با ۱ بوده و در گروه‌های ترکیب‌شده تا اینجا نیز ۱ هستند، به‌صورت ۱ حفظ می‌شوند. تمام بیت‌های دیگر به ۰ بازنشانی خواهند شد.

^mask|^list

گروه با یک عملیات XOR باینری ترکیب خواهد شد. بدین معنا که: تمام بیت‌هایی که در گروه ۱ و در گروه‌های ترکیب‌شده تا اینجا ۰ هستند (یا برعکس)، برابر با ۱ قرار خواهند گرفت. بیت‌هایی که هر دو ۱ یا هر دو ۰ هستند، به ۰ بازنشانی می‌شوند.

~mask|~list

تمام بیت‌هایی که در گروه برابر با ۱ هستند، در گروه‌های ترکیب‌شده تا اینجا پاک (به ۰ بازنشانی) خواهند شد.

-w number, --width number

حداکثر تعداد بیت‌ها در ماسک‌های مدیریت‌شده توسط bits. مقدار پیش‌فرض 8192 است. هر بیتی بزرگ‌تر از این عدد بریده خواهد شد.

-h, --help

نمایش متن راهنما و خروج.

-V, --version

نمایش نسخه و خروج.

یکی از حالت‌های تبدیل زیر می‌تواند مشخص شود. در صورت عدم تعیین، به‌طور پیش‌فرض بر روی -m, --mask قرار دارد.

-b, --binary

چاپ آرگومان‌های ترکیب‌شده به‌صورت یک مقدار ماسک دودویی (باینری).

-g, --grouped-mask

چاپ آرگومان‌های ترکیب‌شده به‌صورت یک مقدار ماسک هگزادسیمال در گروه‌های ۳۲ بیتی جداشده با کاما.

-l, --list

چاپ آرگومان‌های ترکیب‌شده به‌صورت فهرستی از شناسه‌های بیت. شناسه‌های متوالی به بازه‌ها فشرده می‌شوند.

-m, --mask

چاپ آرگومان‌های ترکیب‌شده به‌صورت یک مقدار ماسک هگزادسیمال (پیش‌فرض).

~$ bits --mask 4,5-8 16,30
0x400101f0
~$ bits --list 0xeec2
1,6,7,9-11,13-15
~$ bits --binary 4,5-8 16,30
0b100_0000_0000_0001_0000_0001_1111_0000
~$ bits --list ,00300000,03000000,30000003
0,1,28,29,56,57,84,85
~$ bits --list 1,2,3,4 ~3-10
1,2
~$ bits --list 1,2,3,4 ^3-10
1,2,5-10
~$ bits --grouped-mask 2,22,74,79
8400,00000000,00400004
~$ bits --width 64 --list 2,22,74,79
2,22

Robin Jarry.

برای گزارش باگ‌ها، از سامانه پیگیری مشکلات https://github.com/util-linux/util-linux/issues.

دستور bits بخشی از بسته util-linux است که می‌توان آن را از بایگانی هسته لینوکس https://www.kernel.org/pub/linux/utils/util-linux.

2026-09-02 util-linux 2.42.3