如何将负数转换成正数由| =运算符在C#中?

前端之家收集整理的这篇文章主要介绍了如何将负数转换成正数由| =运算符在C#中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们都知道Int32的最高位定义了它的符号. 1表示它是负数,0表示它是正的(可能反转).可以通过更改其最高位将负数转换为正数吗?

我尝试使用以下代码

i |= Int32.MaxValue;

但它不行.

解决方法

如果你只是寻找一个有点这样做的方式(例如面试问题等),你需要否定数字(按位)并添加1:
int x = -13;
int positiveX = ~x + 1;

如果正面或负面,则会翻转标志.作为一个小小的注意事项,如果x是int.MinValue,那么这不会起作用,因为负的范围比正的范围多一个.

当然,在现实世界的代码我只是使用Math.Abs​​()已经提到…

猜你在找的C#相关文章