بادئ ذي بدء ، هناك ثلاثة أنواع من مشغلي التحول ، وأنواع التشغيل الخاصة بهم تدعم فقط خمسة أنواع: البايت/القصيرة/char/int وطويلة.
<< مشغل التحول الأيسر ، مما يعني تحريك البيانات الثنائية للمعامل على اليسار إلى اليسار * بت ، بعد التحول ، يتم ملء بت الشاغر بـ 0 ، ويتم التخلص من البتات الزائدة. (أي ما يعادل قوة n الضاعفة 2)
>> مشغل التحول الصحيح ، تتحرك البيانات الثنائية * بتات إلى اليمين ، فقط امسح عدد البتات بعد بياناتها الثنائية؟ (من الجيد جدًا تعيين هنا ، لكنني أفهمه مثل هذا) (أي ما يعادل قوة N 2)
>>> مشغل التحول الأيمن غير الموقّع ، بغض النظر عما إذا كان أعلى بت قبل التحول هو 0 أو 1 ، يتم تملأ البتات الفارغة التي تم إنشاؤها على اليسار بعد التحول الأيمن بـ 0.
دعونا نستخدم عرضًا تجريبيًا للمساعدة في فهم:
public static void main (string [] args) {int a = 16 ؛ int b = a << 2 ؛ // Transfer 2 to the Left ، ما يعادل قوة 2 من 16 * 2 ، أي 16 * 4 int c = a >> 2 ؛ // transfer 2 إلى اليمين ، أي ما يعادل قوة 2 من 16/2 ، أي 16/4 system.out.println ("البيانات الثنائية A هي: System.out.println ("البيانات الثنائية A هي:" + integer.tobinarystring (b)) ؛ System.out.println ("البيانات الثنائية A هي:" + integer.tobinarystring (b)) ؛ System.out.println ("البيانات الثنائية A هي:" + integer.tobinarystring (c)) ؛ System.out.println ("قيمة A بعد التحول اليسار هي:" + B) ؛ System.out.println ("قيمة A بعد التحول إلى اليمين هي:" + C) ؛ }}تحقق من نتائج التشغيل كما هو موضح في الشكل:
أولاً ، البيانات الثنائية من 16 هي: 10000 ؛
نقل بتات اليسار ، ويصبح 10000 1000000 ؛
نقل رقمين إلى اليمين ، و 10000 يصبح 100 ؛
بعد تحويل البيانات الثنائية التي تم الحصول عليها إلى بيانات عادية ،
القيمة بعد التحول الأيسر هي 64 ، والتي هي 16 * 2 إلى قوة 2 (16 * 4).
القيمة بعد التحول الصحيح هي 4 ، وهو 16/2 إلى قوة 2 (16/4).
هل من الأسهل بكثير فهم مشغل التحول بعد قراءة هذا العرض التوضيحي؟
العرض التوضيحي أعلاه وملخص مشغلي التحول (الموصى به) في Java هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.