Module: İkili kaydırmalar (C++)


Problem

1/4

Bir sayının işaretini belirleme

Theory Click to read/hide

Bit işlemleri

Bilgisayar belleğindeki tüm sayılar ikili biçimde saklanır, yani. 0'lar ve 1'ler dizisi olarak. Sayıları bilgisayar belleğinde depolamak için sınırlı sayıda bit kullanılır. Bu sayı nedeniyle bilgisayarın sınırlı bir aralığı vardır ve hesaplama sonuçları yanlış olabilir. Bir tamsayı, 8, 16, 32 veya 64 bit bellekte saklanabilir. Her ek bit, olası değer aralığını 2 artırır. 
İşlemcide pozitif ve negatif sayılarla işlemler aynı algoritmalar kullanılarak gerçekleştirilir.

Bit düzeyinde mantıksal işlemlerin yardımıyla, işlemci ve harici aygıtların kayıtlarının ayrı ayrı bitlerini kontrol edebilirsiniz. 
  a ve b için a ve b için a ve b için için bit ters çevirme konumuna bit düzeyinde kaydırma konumuna bit düzeyinde sağa kaydırması



VE
işlemi "AND" işlemini kullanarak maskenin 0 olduğu bitleri sıfırlayabilirsiniz (sıfıra ayarlayabilirsiniz)! 
 
Maske – çok bitli bir sayının bitleri üzerindeki mantıksal işlemin kapsamını tanımlayan bir sabit.

D - veri, M - maske

 

VEYA
işlemi "OR" işlemi, maskenin 1 olduğu bitlere 1 yazmak için kullanılabilir!

 

özel VEYA
işlemi "XOR" işlemini kullanarak, maskesi 1 olan bitleri ters çevirebilirsiniz!


 

Sola Kaydır
Mantıksal (bit düzeyinde) 1'lik sola kaydırma bir pozitif tamsayıyı ikiye katlar.

 

Sağa Kaydır
Boolean (bitsel) .sağa 1 kaydır  pozitif bir tam sayıyı 2'ye böler.


Sağa kaydırma, işaret bitini boş konumlara ayarladığından, x'in işareti, değişkenin tüm uzunluğu boyunca sağa kaydırılarak belirlenebilir.

Problem

x sayısı verilsin. Sayının işaretini belirleyin.

Eksik kod parçasını programa ekleyin.
 
Örnekler
C++ işlemi Hedef
a & b Bitsel And
bir | b Bitsel OR
a ^ b OR
~a a
bir << b a öğesinin solundan b
a >> b a öğesinin b
# Girdi Çıktı
1 10 1
2 -10 -1
3 0 0
Write the program below
#include <iostream>
using namespace std;

int getSign(int x) {
	int mask;  
if (x != 0)
		mask = 1;
	else
		mask = 0;           
}

int main()
{
	int x;
	cin >> x;
	cout << getSign(x);
	return 0;
}
             

     

Program check result

To check the solution of the problem, you need to register or log in!