عملگر not بیتی در آردوینو (~):
عملگر not بیتی در آردوینو، کاراکتر تیلدا (~) است. برخلاف & و |، عملگر نقیض بیتی روی یک عملوند، که در سمت راستش قرار میگیرد، عمل میکند. نقیض بیتی، هر بیت را به خلافش تغییر میدهد: 0 را 1 و 1 را 0 میکند. برای مثال:
1 2 3 4 5 6 7 | 0 1 operand1 ---------- 1 0 ~ operand1 int a = 103; // binary: 0000000001100111 int b = ~a; // binary: 1111111110011000 = -104 // حاصل عمل نقیض متغیر ای. |
ممکن است با دیدن عددی منفی مثل 104- در حاصل این عملیات شگفت زده شوید. این حاصل به خاطر این است که به بالاترین بیت (سمت راست ترین بیت) یک متغیر صحیح (int)، بیت علامت میگویند. اگر این بیت 1 باشد، عدد به عنوان عددی منفی تفسیر میشود.
این نوع رمزگذاری اعداد مثبت و منفی را “متمم دو” میگویند. برای اطلاعات بیشتر، به مقالهی ویکی پدیا در این زمینه مراجعه کنید.
جالب است بدانید که برای هر عدد صحیح x ، نقیض آن (X~) همانند 1-x- است.
گاهی اوقات، بیت علامتِ یک عبارت صحیحِ علامت دار، ممکن است که شگفتیهایی ناخواسته ایجاد کند.