c# – 将-1转换为uint32的目的?
发布时间:2020-12-16 01:50:52 所属栏目:百科 来源:网络整理
导读:这对于经验丰富的C开发人员来说可能是一个非常愚蠢的问题,但是将-1转换为uint32的目的是什么?我正在将一个程序从C翻译成C#,有很多次我看到这样的东西: static const uint32 AllTypes = static_castuint32(-1); 这到底是做什么的?如何在C#中实现同样的目标
这对于经验丰富的C开发人员来说可能是一个非常愚蠢的问题,但是将-1转换为uint32的目的是什么?我正在将一个程序从C翻译成C#,有很多次我看到这样的东西:
static const uint32 AllTypes = static_cast<uint32>(-1); 这到底是做什么的?如何在C#中实现同样的目标? 解决方法
在使用二进制补码的系统上,将-1转换为无符号表示无符号数表示的最高值.
在C#中,您可以使用unchecked((UInt32)-1)或更好:UInt32.MaxValue.这是明确定义的行为,适用于所有CPU架构. 根据the thread rve linked,将-1转换为无符号会导致在C中的所有体系结构上设置所有位. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |