الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن معامل النفي (Bitwise)

مغلق
بدأه bassamBST في 11 سبتمبر 2006 · 8 رد · 558 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ممكن حدا يشرحلي دور معامل NOT وهو (~) ؟؟؟

~0 = 1
~1 = -2
~2 = -3

كيف عبتنسحب النتائج بواسطة معامل النفي ؟؟؟

نفي عدد : هو العدد + واحد مع تغيير الاشارة ؟؟

دورت وما لاقيت جواب

بتمنى تفيدوني

#2

انظر هنا:

http://builder.com.com/5100-6375-5109994-2.html

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

شكراً عالرابط

بس ما فيو الشرح المطلوب

#4

هل يمكنك في perl التعامل مع نظام ارقام عدا العشري, hexa او binary؟

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#5

آسف

أنا بقصد php

يمكنني الكتابة والتعامل بالارقام الثمانية والست عشرية وتطبيق العمليات المنطقية على الارقام العشرية نفسها ..

#6

ما يهمني هو الارقام الثنائية, ان لم تكن تستطيع التعامل معها فاذن اعتبر ان NOT ستعطيك دوما زيادة في الرقم بمقدار 1 مع عكس الاشارة

لكن لانفي لك هذا.. اعتبر لديك 250 قيمة عشرية.. بمعاملتها بـ NOT تصبح 251-

250 في ست عشري تساوي FA .. بمعاملتها بـ NOT تصبح 5 !!!

كيف والرقم نفسه؟ لذا عليك الانتباه الى هذه المسألة لان ادق جواب هو من خلال النظام الثنائي

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#7

(( ما يهمني هو الارقام الثنائية, ان لم تكن تستطيع التعامل معها فاذن اعتبر ان NOT ستعطيك دوما زيادة في الرقم بمقدار 1 مع عكس الاشارة ))

انا بعرف انو الـ Bitwise NOT (~) رح تشتغل هالشغل ..

بس كيف عم تجري العملية وفقاً للنظام الثنائي ؟؟؟

وظيفة معامل الـ NOT حسب ما اعلم ان يبدل كل 0 بـ 1 والعكس ..

بس تفسير النتائج ما كنت افهمو بالنظام الثنائي .. (ممكن التفسير الثنائي لحساب النتائج؟؟ !!!)

شكراً على تجاوبك معي ..

تم تعديل هذه المشاركة بواسطة بسام بساطة في 13 سبتمبر 2006 في 01:37

#8

التفسير الثنائي واضح وهو نفسه عمل NOT (negation) لكن المسالة تتعقد عندما تريد استخدامها مع ارقام مؤشرة او غير مؤشرة..

لترى مثال يستخدم NOT بشكل "منطقي" افرض لديك رقم.. 50

انظر الى التمثيل الثنائي: 00110010

لو اردت ان اطبق NOT الان يجب ان اعكس الـ bits صح؟ اذن تصبح: 11001101 وهذا بالفعل ما تحصل عليه.

القيمة هذه تساوي 205 في العشري وليست 51-

لانني اعتبرت البيانات غير مؤشرة فدخل البت الثامن (most significant) في تشكيل الرقم

بينما لو كانت القيمة مؤشرة فنفس القيمة تلك هي -51 وستجد ان تمثيلها الثنائي نفس التمثيل الثنائي لغير المؤشر حيث يشير البت الاخير الى اشارتها ويتم تمثيل الرقم بـ 7 بتات فقط مما يعني محدوديته لانه سيترواح بين 127 و -127

باختصار NOT تعمل عمل المتمم الأحادي one's complement:

لو ادخلت 50 لاعطتك 205 (متمم الى 255)

لو ادخلت 200 لاعطتك 55

لو ادخلت 5 لاعطتك 250

هذا في الحالة غير المؤشرة

في الحالة المؤشرة:

لو ادخلت 50 لاعطتك -51 (لاحظ, من 50 حتى 0 = 50 / من 51- حتى 127- = 76 مجموعهم 126 + الصفر (كمجال) يصبح 127!)

وهكذا.. لذا حدد مع ما ستتعامل, مؤشر او غير مؤشر كي لا تحصل على قيم خاطئة بالنتيجة وبما ان php لا تستخدم الثنائي اذن انت ستتعامل مع البيانات المؤشرة.

ملاحظة: 255 بالست عشري FF

لو اصبح الرقم المؤشر المراد الحصول على المتمم له بـ NOT اكبر من هذا فانك تدخل في حدود short وتخرج عن byte اي يصبح مجالك من FFFF = 65535

وهكذا.. اتمنى ان اكون قد افدتك

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#9

شرحك كافي ووافي .. ما بعرف ليش ما فهمتا لحالي !!

شكراً لك

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…