অপারেটর হ'ল বিটওয়াইজ-এক্সওর (দেখুন &, |)। কিছুটা জোড়ার জন্য ফলাফল,
0 ^ 0 == 0
0 ^ 1 == 1
1 ^ 0 == 1
1 ^ 1 == 0
সুতরাং প্রকাশ,
( x ^ 0x1 )
এক্স-এর 0 তম বিটকে ইনভার্ট / ফ্লপ করে (অন্যান্য বিট অপরিবর্তিত রেখে)।
এক্স এর 0x0 এবং 0x1 এর সাথে মান থাকতে পারে কিনা তা বিবেচনা করুন? X যখন একক বিট ক্ষেত্র হয় তবে এর কেবলমাত্র 0x0 এবং 0x1 মান থাকতে পারে, তবে যখন x একটি int (চর / সংক্ষিপ্ত / দীর্ঘ / ইত্যাদি) হয়, বিট 0 এর সাথে বিটগুলি এক্সপ্রেশনটির ফলাফলকে প্রভাবিত করতে পারে।
প্রদত্ত হিসাবে প্রকাশটি বিট0 এর পাশে বিটগুলি ফলাফলকে প্রভাবিত করতে দেয়,
if ( 0 != ( x ^ 0x1 ) )
যার এই (সরল) মত প্রকাশের সমান সত্যতা রয়েছে,
if ( x ^ 0x1 )
মনে রাখবেন যে এই অভিব্যক্তিটি কেবল বিট 0 পরীক্ষা করবে,
if( 0x1 & ( x ^ 0x1 ) )
সুতরাং হিসাবে প্রকাশিত এক্সপ্রেশন সত্যিই দুটি এক্সপ্রেশন চেক একত্রিত হয়,
if( ( x & ~0x1 ) //look at all bits besides bit0
|| ( x ^ 0x1 ) ) //combine with the xor expression for bit0
লেখক কি কেবল বিট0 যাচাই করতে চেয়েছিলেন এবং এই অভিব্যক্তিটি ব্যবহার করতে চেয়েছিলেন,
if( 0x1 & ( x ^ 0x1 ) )
অথবা লেখক কি বিট 1-বিটএন এবং বিট 0 এর জোরের মানগুলি বয়ে আনতে চান?