繁体   English   中英

为什么我不能为 int32 分配 32 位的二进制文字?

[英]Why can I not assign a binary literal of 32 bits for a int32?

为什么编译器会失败并出现此错误:当我执行此操作时“无法将 uint 隐式转换为 int”?:

int bits = 0b1001_1000_0000_0000_0000_0000_0000_0000;

0b1001_1000_0000_0000_0000_0000_0000_0000是一个uint值。 您可以做的是明确地将其转换为int ,此处unchecked以允许负数(当给定值超过Int32.MaxValue时):

int bits = unchecked((int)0b1001_1000_0000_0000_0000_0000_0000_0000);

在此示例中,您将有bits == -1744830464

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM