Module: Cambios binarios (C++)


Problem

1/4

Determinar el signo de un número

Theory Click to read/hide

Operaciones con bits

Todos los números en la memoria de la computadora se almacenan en forma binaria, es decir como una secuencia de 0 y 1. Para almacenar números en la memoria de la computadora, se utiliza una cantidad finita de bits. Debido a este número, la computadora tiene un rango limitado y los resultados del cálculo pueden ser inexactos. Un número entero se puede almacenar en 8, 16, 32 o 64 bits de memoria. Cada bit adicional amplía el rango de valores posibles en 2. 
Las operaciones con números positivos y negativos se realizan en el procesador utilizando los mismos algoritmos.

Con la ayuda de operaciones lógicas bit a bit, puede controlar bits individuales de los registros del procesador y dispositivos externos. 
 



Operación Y
Con la operación "Y" puede restablecer (poner a cero) bits para los que la máscara es 0. 
 
Máscara – una constante que define el alcance de la operación lógica en los bits de un número de varios bits.

D - datos, M - máscara

 

Operación O
La operación "OR" se puede utilizar para escribir un 1 en los bits para los que la máscara es 1.

 

Operación exclusivo O
¡Usando la operación "XOR" puedes invertir bits para los cuales la máscara es 1!


 

Desplazamiento a la izquierda
Un desplazamiento a la izquierda de 1 bit lógico (bit a bit) duplica un entero positivo.

 

Desplazamiento a la derecha
Booleano (bit a bit) .desplazar a la derecha 1  divide un entero positivo por 2.


Dado que un desplazamiento a la derecha establece el bit de signo en las posiciones vacantes, el signo de x se puede determinar desplazando a la derecha toda la longitud de la variable.

Problem

Sea el número x. Determine el signo del número.

Agregue el fragmento de código que falta al programa.
 
Ejemplos
Operación C++ Destino
a & b Bitbit Y para a y b
a | b Bitbit OR para a y b
a ^ b OR para a y b
~a Inversión de bits para a
un << b Desplazamiento bit a bit a la izquierda de a a b
a >> b Desplazamiento bit a bit a la derecha de a a b
# Entrada Salida
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!