visual valor saber positivo para numero negativo matematicas determinar convertir como cero c#

c# - valor - determinar si un numero es positivo negativo o cero visual basic



Convierte un nĂºmero positivo a negativo en C# (22)

Puede convertir un número negativo en positivo así:

int myInt = System.Math.Abs(-5);

¿Hay un método equivalente para hacer que un número positivo sea negativo?


¿Tal vez esto?

int n; .... some coding.... n = n<=0? n:0-n;


Aunque llego tarde a la fiesta aquí, voy a contar algunos trucos útiles de mis días de hardware. Todos estos asumen la representación del cumplido de 2 para los números con signo.

int negate = ~i+1; int positiveMagnitude = (i ^ (i>>31)) - (i>>31); int negativeMagnitude = (i>>31) - (i ^ (i>>31));


Convertir un número de positivo a negativo, o negativo a positivo:

public static decimal Reverse(this decimal source) { return source * decimal.MinusOne; }


De la misma manera que haces cualquier otra cosa negativa: pon un signo negativo delante de ella.

var positive = 6; var negative = -positive;


EDITAR: Esto es incorrecto para entradas positivas ... Cometí un error al olvidar que el resto de los bits en -x (valor 2s-Complement) son los "opuestos" de su valor en + x, no es lo mismo. ASÍ QUE simplemente cambiar el bit de signo NO funcionará para números positivos.

Dejaré esto aquí para propósitos ...

O la manera complicada (creo) ...

int y = x | ~ int.MaxValue;

cause int.MaxValue is 0111 1111 1111 1111 1111 1111 1111 1111

asi que

~int.MaxValue is 1000 0000 0000 0000 0000 0000 0000 0000

y por lo tanto, cualquier int32 Or''ed con eso pondrá un 1 en el bit de signo, (haciéndolo negativo), y dejará todos los otros bits iguales ...

EDITAR: en realidad, dado que el 1000 0000 0000 0000 0000 0000 0000 0000 es en realidad el Minvalue, esto también debería funcionar:

int y = x | int.MinValue; // or, to do it to itself, x |= int.MinValue;


La forma más fácil de a = -a hará el favor


La manera fácil:

myInt *= -1;


Multiplicar por -1.


Nota para todos los que respondieron con

- Math.Abs(myInteger)

o

0 - Math.Abs(myInteger)

o

Math.Abs(myInteger) * -1

como una forma de mantener los números negativos negativos y convertir los negativos en negativos.

Este enfoque tiene un solo defecto. No funciona para todos los enteros. El rango del tipo Int32 es de "-2 31 " a "2 31 - 1". Significa que hay un número más "negativo". En consecuencia, Math.Abs(int.MinValue) arroja una OverflowException .

La forma correcta es usar declaraciones condicionales:

int neg = n < 0 ? n : -n;

Este enfoque funciona para "todos" los enteros.


Para cambiar el signo de un entero, solo usa el operador de signo:

myInt = -myInt;

Para que sea negativo, independientemente de si el valor original es negativo o no, primero use el método Abs:

myInt = -Math.Abs(myInt);


Qué tal si

myInt = myInt * -1


Solo algo que quiero compartir

public decimal NumberReevaluate(decimal number, bool isPositive) { var tempNumber = System.Math.Abs(number); return isPositive ? tempNumber : -tempNumber; }


Solo por diversión:

int negativeInt = int.Parse(String.Format("{0}{1}", "-", positiveInt.ToString()));

Actualización : la belleza de este enfoque es que puede refactorizarlo fácilmente en un generador de excepciones:

int negativeInt = int.Parse(String.Format("{0}{1}", "thisisthedumbestquestioninhistory", positiveInt.ToString()));


Solo por más diversión:

int myInt = Math.Min(hisInt, -hisInt); int myInt = -(int)Math.Sqrt(Math.Pow(Math.Sin(1), 2) + Math.Pow(Math.Cos(-1), 2)) * Math.Abs(hisInt);


Use binary y elimine el último bit que es responsable del signo negativo.

O use binary o para agregar un signo a un tipo de datos.

Esta solución puede parecer absurda e incompleta, pero puedo garantizar que este es el método más rápido.

Si no experimentas con lo que he publicado, esta publicación puede parecer una mierda: D

Por ejemplo, para int:

Int es un tipo de datos de 32 bits, por lo que el último bit (32º) determina el signo.

Y con un valor que tiene 0 en el lugar 32 y resto 1. Convertirá negativo no en + ve.

Por el contrario o con un valor con 1 en el lugar 32 y descanso 0.


Yo uso myInt = -myInt;

Tan simple y fácil

Si quieres tener solo resultados positivos

myInt = myInt>0 ? myInt : -myInt;


X=*-1 puede no funcionar en todos los compiladores ... ya que lee ''multiplicar'' ''RESTABLECER'' 1 en lugar de NEGATIVO. La mejor alternativa es X=(0-X) , [QUE ES DIFERENTE DE X-=X ]


int myInt = - System.Math.Abs(-5);


int myNegInt = System.Math.Abs(myNumber) * (-1);


int negInt = -System.Math.Abs(myInt)


int negInt = 0 - myInt;

O garantizado que es negativo.

int negInt = -System.Math.Abs(someInt);


long negativeNumber = (long)positiveInt - (long)(int.MaxValue + 1);

Nadie dijo que tenía que ser un número negativo en particular .