يستخدم gray code لتلافى عيوب binary code
فمثلا فى حالى الانتقال من 7 الى 8 فى حالة binary code فان يتم عمل اربع تغيرات كالاتى 111 , 1000 نجد ان تم الانتقال من 1 الى 0 فى الثلاث ارقام الاولى ومن 0 الى 1 فى الرقم الرابع
تنبع المشكله انه اثناء الانتقال يصعب الانتقال اللحظى للكل مع بعض
فالبتالى لعدم القدره على ضمان ان يتم تغير الخروج مع بعض لحظيا فانه قد ينشئ خطا عند عمليه التغير فمثلا عند تغير 111 الى 1000 وتم تغير ال bit الاولى فقط ولم يستجب الاخر فتكون الرقم 110 اى 6 وبعد لحظات تم تغير باقى الارقام ليكون الشكل 7 - 6 -8
اما في gray code فيتم تغير بت واحد عند الانتقال من رقم الى الرقم الذي يليه
كا الاتي
bainary
000
001
010
011
100
101
110
111
gray
000
001
011
010
110
111
101
100