تشفير | فك التشفير | التصور

> غراي | منعكس | ثنائي <

// رمز غراي - نظام أعداد ثنائي تختلف فيه القيم المتتالية في بت واحد فقط

0 حرف
0 حرف
[SINGLE-BIT]

مسافة وحدة

يتغيّر بت واحد فقط بين القيم المتتالية.

[ERROR-REDUCTION]

تقليل الأخطاء

يقلل الأخطاء في التحويل من تناظري إلى رقمي.

[CYCLIC]

خاصية دورية

القيمة الأولى والأخيرة تختلفان في بت واحد فقط.

>> معلومات تقنية

كيف يعمل رمز غراي:

رمز غراي (الشيفرة الثنائية المنعكسة) هو نظام أعداد ثنائي تختلف فيه قيمتان متتاليتان في بت واحد فقط. يتم توليده عن طريق إجراء XOR بين كل بت والبت السابق له. هذه الخاصية تجعله مثاليًا لمشفّرات الموضع وتقليل الأخطاء في الأنظمة الرقمية.

أمثلة على رمز غراي:

Decimal | Binary | Gray Code
0       | 0000   | 0000
1       | 0001   | 0001
2       | 0010   | 0011
3       | 0011   | 0010
4       | 0100   | 0110
5       | 0101   | 0111
6       | 0110   | 0101
7       | 0111   | 0100

ملاحظة: يتغيّر بت واحد فقط بين رموز غراي المتتالية

لماذا نستخدم رمز غراي:

  • ▸المشفّرات الدوّارة
  • ▸خرائط كارنوف
  • ▸تصحيح الأخطاء
  • ▸الاتصالات الرقمية
  • ▸حساسات الموضع

>> الأسئلة الشائعة

ما هو رمز غراي؟

رمز غراي، المعروف أيضًا بالشيفرة الثنائية المنعكسة، هو نظام عد ثنائي تختلف فيه قيمتان متتاليتان في بت واحد فقط. يُستخدم على نطاق واسع في الأنظمة الرقمية لتجنب القراءات الخاطئة أثناء الانتقال بين القيم.

كيف أحوّل من ثنائي إلى رمز غراي؟

لتحويل ثنائي إلى غراي: 1) احتفظ بالبت الأعلى (MSB) كما هو، 2) طبّق XOR بين كل بت والبت السابق له. الصيغة: G[i] = B[i] XOR B[i-1]. على سبيل المثال، 1011 ثنائي تصبح 1110 في رمز غراي.

لماذا رمز غراي أفضل للمشفّرات؟

في الترميز الثنائي، قد تتغيّر عدة بتات في الوقت نفسه عند الانتقال بين القيم، مما يخلق حالات وسيطة غير صحيحة. يضمن رمز غراي تغيّر بت واحد فقط، ما يقلل القراءات الغامضة في المشفّرات الدوّارة وأجهزة الاستشعار.

أين يُستخدم رمز غراي؟

يُستخدم رمز غراي في المشفّرات الدوّارة، وتبسيط خرائط كارنوف، وتصحيح الأخطاء في الاتصالات الرقمية، والخوارزميات الجينية، ومحولات التماثلي إلى رقمي، وغيرها من الأنظمة التي تحتاج إلى تغيّر بت واحد فقط.

// مرجع سريع

DecBinaryGray
0000000
1001001
2010011
3011010
4100110
5101111
6110101
7111100

// أمثلة برمجية

Binary -> Gray   g = b ^ (b >> 1)
Gray -> Binary   b = g; for (m = g >> 1; m; m >>= 1) b ^= m;
Python           def to_gray(n): return n ^ (n >> 1)
                 def from_gray(g):
                     n = 0
                     while g: n ^= g; g >>= 1
                     return n
n bits           2^n codes, successive codes differ by exactly 1 bit (also 2^n - 1 -> 0)

>> المزيد من الأسئلة

س: ما هو رمز غراي؟

ج: رمز غراي (الثنائي المنعكس) تمثيل تختلف فيه القيمتان المتتاليتان في بت واحد فقط. سجّله فرانك غراي ببراءة اختراع في مختبرات بيل وهو دوري: القيمة الأخيرة تختلف عن الأولى ببت واحد أيضاً.

س: لماذا يُستخدم في المرمّزات الدوّارة؟

ج: في الثنائي العادي تتغير عدة بتات معاً عند الانتقال مثل 011 إلى 100. وإن لم تتبدل الحساسات بتزامن تام ظهرت قيم خاطئة لحظياً. في رمز غراي يتغير بت واحد فقط فلا يتجاوز الخطأ موضعاً واحداً.

س: كيف أحوّل رمز غراي إلى ثنائي؟

ج: يبقى البت الأعلى كما هو، وكل بت ثنائي تالٍ يساوي البت الثنائي السابق XOR بت غراي الحالي. بالصيغة: b = g ^ (g >> 1) ^ (g >> 2) ^ …. ومن الثنائي إلى غراي: g = b ^ (b >> 1).

لغات أخرى