¿Qué es un entero con signo?

Mejor respuesta

Dado que esto se pregunta en el tema de Ingeniería de software, tal vez podamos discutir la representación.

Ocho Los bits de datos (donde un bit es un interruptor que representa un 1 o un 0) pueden contener un entero sin signo de la siguiente manera:

0 = 00000000

1 = 00000001

2 = 00000010

4 = 00000100

8 = 00001000

16 = 00010000

256 = 10000000

511 = 11111111

Entonces, nuestros 8 bits de datos pueden contener un entero sin signo tan grande como 255 y tan pequeño como 0. Sin embargo, las aplicaciones del mundo real pueden requerir tanto números negativos como positivos.

Para acomodar números enteros con signo, necesitamos ceder parte de nuestro almacenamiento. Hay varios esquemas que hacen esto.

El esquema más simple sería usar el primer bit para representar el signo (digamos que cero es positivo y 1 es negativo). Esto tiene la divertida consecuencia de tener un valor cero positivo y uno negativo.

+ 0 = 00000000

- 0 = 10000000

1 = 00000001

- 1 = 10000001

+ 2 = 00000010

- 2 = 10000010

+ 64 = 01000000

- 64 = 11000000

+127 = 01111111

Esto nos permite almacenar números desde -127 a +127, que son 255 números (incluido el 0).

Otra forma de hacer esto es usando lo que se llama complemento de unidades almacenamiento. Para esto, el número negativo es la secuencia de bits opuesta al número positivo.

Por ejemplo:

0 = 00000000

0 = 11111111

2 = 00000010

- 2 = 11111101

La aritmética con números negativos nos permite sumar los dos números. Por ejemplo, 2 + -2 se convierte en

+ 2 = 00000010

-2 = 11111101

--------------

= 11111111

que vimos anteriormente era cero. Entonces, el rango que podemos almacenar en esta representación con 8 bits son los enteros entre -127 y +127, o 255 números (ya que incluimos el cero como un solo número).

Dado que el negativo de cero es cero , todavía hay dos representaciones de cero. Eso es un poco desperdicio, así que para solucionarlo, se usa twos-complemento . Eso toma el número negativo en complemento a unidades y suma uno. En esta representación

0 = 00000000

2 = 00000010

- 2 = 11111110

- 1 = 11111111

1 = 00000001

-128 = 10000000

127 = 01111111

-127 = 10000001

Entonces, el rango que podemos almacenar en esta representación con 8 bits son los enteros entre -128 y +127, o 256 números en total. El uso de este esquema nos permite usar de manera más efectiva todas las combinaciones, lo cual puede ser muy importante si queremos hacer el mejor uso de los recursos que representan cosas tan fundamentales como enteros con signo.

Hay otras formadas de representaciones enteras que se pueden ver en Representaciones de números firmados – Wikipedia .

Respuesta

Primero, no hay solución con ninguno número igual a cero.

Si ambos son cero, entonces los dos lados no están definidos. (Puede llamar a eso una solución si lo desea, no lo haré).

Si uno es cero y el otro es positivo, entonces un lado es cero y el otro es uno.

Si uno es cero y el otro es negativo, entonces un lado es uno y el otro no está definido.

Ahora, considerando solo los números enteros positivos, está claro que a = b funciona.

Para otras soluciones, tome el logaritmo natural de ambos lados (no hay problema, ya que ambos lados son positivos), y obtenemos

b ln (a) == a ln (b)

Dividir ambos lados por ay ln (a) (no hay problema, estamos considerando enteros positivos solo por el momento), obtenemos

(b / a) == ln (b) / ln ( a) == ln (a * (b / a)) / ln (a) == [ln (a) + ln (b / a)] / ln (a) == 1 + ln (b / a) / ln (a)

Reorganizar a

(b / a) -1 == ln (b / a) / ln (a)

Multiplica ambos lados por ln (a) y dividir ambos lados por (b / a) -1 para obtener

ln (a) == ln (b / a) [(b / a) -1]

Tenga en cuenta que esto es una división por cero si a = b, pero ya consideramos ese caso. Entonces esto es válido solo para a> 0, b> 0 y a b. Ahora dale el nombre b / aa, llámalo x = b / a.

Entonces tenemos

ln (a) == ln (x) / (x-1)

Tenga en cuenta que el lado izquierdo es siempre positivo, a menos que a == 1, en cuyo caso necesitamos x == 1 (el lado derecho se puede definir por continuidad para cubrir x = 1, y es igual a 1 en este punto). Pero si x == 1, entonces a = b, entonces la derivación de esta ecuación no era válida, y ya consideramos a = b de todos modos.

Entonces, el lado izquierdo es positivo para a> 1, pero está bien, porque el lado derecho siempre es positivo para x positivo.Pero podemos pensar en los casos de ln (a) 1, por separado. (ln (a) = 1 no ocurre para valores enteros de a.)

Para ln (a) , tenemos

ln (x) / (x-1 ) .

Si x> 1, entonces el numerador y el denominador son positivos, de modo que

ln (x) -1, que es siempre el caso. Pero si x , entonces el numerador y el denominador son negativos, de modo que

ln (x)> x-1

Este nunca es el caso de la función logaritmo. Entonces, si ln (a) 1. (No es necesario considerar x = 1, ya que ya hemos cubierto a = b.)

¿Qué pasa si ln (a)> 1? Entonces

ln (x) / (x-1)> 1

Si x> 1, entonces el numerador y el denominador son positivos, de modo que

ln ( x)> x-1

Este nunca es el caso. Si x , entonces el numerador y el denominador son negativos, de modo que

ln (x) -1

Este es siempre el caso. Entonces, si ln (a)> 1, necesitamos x .

Entonces, para enteros positivos con a b, tenemos dos casos para considerar. Uno es

ln (a) 1

y el otro es

ln (a)> 1 yx

Pensemos en esto. Solo hay un a> 1 (ya hemos considerado a = 1) tal que ln (a) , y ese es a = 2. Entonces la x correspondiente viene dada por

ln (2) == ln (x) / (x-1)

Una suposición fundamentada (y una de las otras respuestas ya tiene esto solución) es x = 2. Pero x = b / a, y a = 2, entonces si x = 2, entonces a = 4. Tenga en cuenta que no puede haber una solución para ningún otro valor de x, ya que ln (x) / (x-1) es una función estrictamente decreciente para x> 0.

El otro caso es ln (a) > 1, pero en este caso, tenemos x . Eso significa b / a , o b 1 (verdadero para cualquier número entero a> 2), entonces a es el número entero más grande y b es el más pequeño. Pero, ¿puede ln (b)> 1? Si es así, simplemente cambie ayb, esto también debe ser una solución debido a la simetría. Entonces ln (a)> 1, lo que significa x 1 e ln (b)> 1. ln (b) = 1 no corresponde a un número entero, así que si ln (a)> 1, entonces debemos tener ln (b) 1 con ln (b) es 2.

Entonces, si hay una solución de entero positivo, los dos valores ayb son iguales, o uno de ellos es 2 y el otro es 4.

No hay soluciones que involucren a = 0 o b = 0, a menos que desee llamar a a = b = 0 una solución, con el argumento de que undefined es igual a undefined, pero No quiero que me quiten mi licencia de matemáticas.

¿Podríamos tener soluciones negativas? Bueno, supongamos que a 0 (sabemos que no podemos tener b = 0), entonces a ^ b es un número entero, pero b ^ a es solo un número entero si a = -1. Pero entonces a ^ b es -1 si b es impar y +1 si b es par. b ^ a es positivo, por lo que no podemos tener a = -1 y b impar. Pero si b es par, entonces a ^ b es 1 y b ^ a no es igual a uno. Entonces no podemos tener a 0. Por la misma razón, no podemos tener a> 0 yb .

¿Podemos tener a y b ? En ese caso, a ^ b es positivo si b es par y negativo si b es impar. De manera similar, b ^ a es positivo si a es par y negativo si a es impar. Entonces, para que los dos sean iguales, necesitamos que ayb sean impares, o que ayb sean pares.

Supongamos que son impares. Luego, comenzando con

a ^ b == b ^ a

Multiplicamos ambos lados por uno negativo y reorganizamos un poco, obteniendo

(-a) ^ b == (-b) ^ a

Tomando recíprocos de ambos lados, tenemos

(-a) ^ (- b) == (-b) ^ (- a)

Pero si a y b 0 y -b> 0, y ya hemos determinado que las únicas soluciones positivas para -a y -b con ambos impares son cuando -a = -b, o a = b. Entonces, si ayb son cada uno el mismo entero impar negativo, la igualdad se mantiene. Si cualquiera de los dos es un entero impar negativo, pero a b, entonces no es una solución.

¿Qué pasa si ayb son números enteros pares negativos? Entonces obtenemos

(-a) ^ b == (-b) ^ a

sin multiplicar ambos lados por -1. Tomando recíprocos de ambos lados, tenemos

(-a) ^ (- b) == (-b) ^ (- a)

Ya conocemos las soluciones donde -a > 0 y -b> 0 y ambos son incluso enteros positivos; ya sea -a = -b, o -a = 2 y -b = 4, o -a = 4 y -b = 2.

Esto cubre todos los casos. Entonces, la lista completa de soluciones enteras es

ayb son el mismo entero positivo o negativo (pero no cero)

a = 2 y b = 4

a = 4 y b = 2

a = -2 y b = -4

a = -4 y b = -2

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *