3 - متابعة للمشاركة #2

https://arabia.io/go/6377

أود أن أذكر لا تستهين بالزمن مهما كان صغير فأنت بحاجة لكل نانو ثانية 0.000000001 لأن هذه التي لا تعجبك عندما تكون ضمن حلقات بالملايين ستتحول إلى ملي ثانية

وكمثال عملي عندما أردت أن أعكس الصورة فلا بد أن أحول قيم مركبات كل بيكسل إلى متمماتها أي أطرح كل قيمة مركبة لونية من القيمة العظمى 255

والبديهي :

R = 255 - R ;
G = 255 - G ;
B = 255 - B ;

ولكن ما رأيك بتعليمة أسرع

R ^= 255;
G ^= 255;
B ^= 255;

طبعا الرمز ^ هو تعليمة Xor المنطقية وهي إذا طبقت بين قيمة ثنائية و واحد منطقي تقوم بعكسه

ولهذا ضربت محتوى المركبة بثمانية بتات كلها واحدات 11111111 والتي هي 255 بالعشري وبالتالي نتيجة العملية ستكون عكس بتات المتغير أي متممه

إذا مع أن فارق الزمن بين التعليمتين صغير جدا جدا جدا إلا أنه عندما يطبق ثلاث مرات ضمن حلقة قد تكون كبيرة جدا من أجل صور ضخمة حينها ستعرف قيمة هذا الفارق كم هو مهم

إذا ما أردت قوله أن تهتم لنوع التعليمات التي تستخدمها

للعلم هذا المثال من أجل توضيح الفكرة فقط وربما هناك طرق أسرع من هذه وتلك ولكن تحتاج إلى بحث وتجربة.

يتبع ... 4