c# - int 最大值 = ~0;这是什么意思?

标签 c# bitwise-operators

最大整数 = ~0;

这是什么意思?

最佳答案

~ 运算符是计算按位补码的一元按位补码运算符。这意味着它反转其参数中的所有位(0 变为 1,1 变为 0)。因此,

int max = ~0;

max 设置为 32 位值 0000 0000 0000 0000 0000 0000 0000 0000 的负值 1111 1111 1111 1111 1111 1111 1111 1111。由于我们将此结果存储在 Int32 中,这与 -1 相同。

要不要说比较好

int max = ~0;

int max = -1;

取决于上下文。如果 max 的目的是让一个数字的所有位都为 1,我会选择前者。如果 max 的目的是计算非负整数列表的最大值,我会选择后者(好吧,我更喜欢 int max = Int32.MinValue; 更重要的是,我更喜欢 int max = list.Max();)。

关于c# - int 最大值 = ~0;这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4765201/

相关文章:

c++ - 正数和负数的位运算符

c# - 如何从字符串中删除表情符号字符?

c++ - 使用位运算符理解枚举成员的初始化

c# - 使用两个 for 循环

c# - 向事件添加委托(delegate) - 线程安全

c - 操作字符变量的位

c++ - 设置十六进制数的位数

javascript - 如何在二进制上应用按位右移运算符?

c# - Task.Run a void 方法和 Task 方法返回 null 有区别吗?

c# - NHibernate 中的一对多