بیت فیلد: تفاوت میان نسخه‌ها

از ویکی‌پدیا، دانشنامهٔ آزاد
محتوای حذف‌شده محتوای افزوده‌شده
ایجاد شده توسط ترجمهٔ صفحهٔ «Bit field»
(بدون تفاوت)

نسخهٔ ‏۲۴ ژوئن ۲۰۱۸، ساعت ۱۰:۱۸

یک بیت فیلد یک ساختار داده مورد استفاده در برنامه نویسی کامپیوتر است.بیت فیلد متشکل از تعدادی خانه‌ی مجاور حافظه است که برای نگه‌داشتن دنباله‌ای از بیت‌ها اختصاص داده شده‌اند و میتوان هر تک بیت یا گروهی از آنها را استفاده کرد.[۱][۲]

معنی تک‌تک بیت‌ها در فیلد توسط برنامه‌نویس مشخص میشود. برای مثال اولین بیت در یک بیت فیلد(در آدرس پایه فیلد) بعضی مواقع برای تعیین یک خصوصیت خاص مرتبط با فیلد استفاده میشود.[۳]

پیاده‌سازی

بیت فیلد‌ها میتوانند برای کم کردن استفاده از حافظه زمانی که برنامه نیاز به اعدادی که همیشه مقادیر پایینی دارند، استفاده میشوند. برای مثال در بسیاری از سیستم‌ها،ذخیره سازی یک مقدار صحیح نیاز به دو بایت (16 بیت) از حافظه دارد؛ گاهی اوقات مقداری که باید ذخیره شود تنها به یک یا دو بیت نیاز دارد. با داشتن تعدادی از این متغیر‌های کوچک یک بیت فیلد اجازه می‌دهد تا داده‌ها کار‌آمد‌تر در حافظه ذخیره شوند.[۴]

در سی و سی‌پلاس‌پلاس، بیت فیلد‌هایی که بصورت بومی پیاده سازی شده‌اند میتوانند با unsigned int یا signed int یا _Bool (در C99) ایجاد شوند.در اینجا برنامه‌نویس میتواند یک ساختار تعریف کند و عرض هر زیرفیلد را مشخص کند.

برای زبان های فاقد بیت فیلد‌های بومی یا جایی که برنامه‌نویس می خواهد کنترل سخت‌گیرانه‌ای بر نتیجه داشته باشد، برنامه‌نویس میتواند از یک نوع کلمه‌ی بزرگتر استفاده کند. در اینجا برنامه‌نویس میتواند بیت‌ها را با استفاده از ترکیبی از عملیات بیتی و ماسک‌ها تغییر دهد. [۵]

منابع

  1. Penn Brumm; Don Brumm (August 1988). 80386 Assembly Language: A Complete Tutorial and Subroutine Library. McGraw-Hill School Education Group. p. 606. ISBN 978-0-8306-9047-3.
  2. Steve Oualline (1997). Practical C Programming. "O'Reilly Media, Inc.". pp. 403–. ISBN 978-1-56592-306-5.
  3. Michael A. Miller (January 1992). The 68000 Microprocessor Family: Architecture, Programming, and Applications. Merrill. p. 323. ISBN 978-0-02-381560-7.
  4. Tibet Mimar (1991). Programming and Designing with the 68000 Family: Including 68000, 68010/12, 68020, and the 68030. Prentice Hall. p. 275. ISBN 978-0-13-731498-0.
  5. Mark E. Daggett (13 November 2013). Expert JavaScript. Apress. pp. 68–. ISBN 978-1-4302-6097-4.