Module: تغییرات باینری (C++)


Problem

1/4

تعیین علامت یک عدد

Theory Click to read/hide

عملیات بیت

تمام اعداد در حافظه کامپیوتر به شکل باینری ذخیره می شوند، یعنی. به عنوان دنباله ای از 0 و 1. برای ​​ذخیره اعداد در حافظه کامپیوتر، تعداد محدودی بیت استفاده می شود. به دلیل این تعداد، رایانه دارای محدوده محدودی است و نتایج محاسبه ممکن است نادرست باشد. یک عدد صحیح را می توان در حافظه 8، 16، 32 یا 64 بیتی ذخیره کرد. هر بیت اضافی محدوده مقادیر ممکن را 2 افزایش می دهد. 
عملیات با اعداد مثبت و منفی در پردازنده با استفاده از الگوریتم های مشابه انجام می شود.

با کمک عملیات منطقی بیتی، می توانید تک تک بیت های رجیسترهای پردازنده و دستگاه های خارجی را کنترل کنید. 
  <سر> <بدن>
عملیات C++ مقصد
a & ب و بیتی برای a و b
a | ب OR بیتی برای a و b
a ^ b OR برای a و b
~a وارونگی بیت برای a
a << ب تغییر بیتی از a به b
a >> ب تغییر بیتی به راست a به b



عملیات AND
با استفاده از عملیات "AND" می‌توانید بیت‌هایی را که ماسک آن‌ها 0 است، بازنشانی کنید (صفر کنید)! 
 
ماسک– ثابتی که محدوده عملیات منطقی را روی بیت های یک عدد چند بیتی مشخص می کند.

D - داده، M - ماسک

 

عملیات OR
از عملیات "OR" می توان برای نوشتن 1 به بیت هایی که ماسک آنها 1 است استفاده کرد!

 

عملیات انحصاری OR
با استفاده از عملیات "XOR" می‌توانید بیت‌هایی را که ماسک آن‌ها 1 است معکوس کنید!


 

Shift Left
یک بیت منطقی (بیتی) 1 به چپ شیفت یک عدد صحیح مثبت را دو برابر می کند.

 

Shift Right
بولی (بیتی) .تغییر به راست با ۱  یک عدد صحیح مثبت را بر 2 تقسیم می کند.


از آنجایی که یک شیفت به راست، بیت علامت را روی موقعیت های خالی تنظیم می کند، علامت x را می توان با جابجایی به راست کل طول متغیر تعیین کرد.

Problem

اجازه دهید عدد x داده شود. علامت عدد را تعیین کنید.

کد گم شده را به برنامه اضافه کنید.
 
نمونه‌ها
<سر> <بدن>
# ورودی خروجی
1 10 1
2 -10 -1
3 0 0