Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java到C#的转换-int uint类型_Java_C#_Int_Type Conversion_Uint - Fatal编程技术网

Java到C#的转换-int uint类型

Java到C#的转换-int uint类型,java,c#,int,type-conversion,uint,Java,C#,Int,Type Conversion,Uint,我正在将代码从java转换为c#,并且一直使用int和uint。 Java代码(摘录): 转换后的c代码(摘录): 这将导致以下编译错误: 错误CS0266无法将类型“uint”隐式转换为“int”。存在显式转换(是否缺少强制转换?) 有很多类似上面的代码,但我不确定是否应该将所有Java int转换为C#uint?我记得C#uint不存储负值,如果java int是负数,那么我就遇到了一个问题 有关于我应该如何解决问题的任何意见吗?您可以这样尝试: int[] sbc_proto_4 = ne

我正在将代码从java转换为c#,并且一直使用int和uint。 Java代码(摘录):

转换后的c代码(摘录):

这将导致以下编译错误: 错误CS0266无法将类型“uint”隐式转换为“int”。存在显式转换(是否缺少强制转换?)

有很多类似上面的代码,但我不确定是否应该将所有Java int转换为C#uint?我记得C#uint不存储负值,如果java int是负数,那么我就遇到了一个问题

有关于我应该如何解决问题的任何意见吗?

您可以这样尝试:

int[] sbc_proto_4 = new int[] { unchecked((int)0xec1f5e60) >> SCALE_PROTO4_TBL };

也就是说,您必须显式地强制转换uint(0xec1f5e60)。

您需要显式地将uint强制转换为int。但考虑到这可能会导致数据丢失。我知道unchecked关键字,但我不能使用它。例如,如果打印出0xec1f5e60的值,您将看到3961478752。如果您使用unchecked关键字转换它,那么值将是-333488544我想我应该只是一个long而不是一个int@user1005448:-重点是您需要对uint值进行显式转换。我不确定您希望在您的上下文中使用哪个值。希望您现在能够理解错误原因以及如何解决它,因为>>指定第二个数据类型必须是intI类型,所以不能使用long as datatype,我尝试查看相同的十六进制值,所以我将接受您的答案以使用unchecked。谢谢你抽出时间。
public const int SCALE_PROTO4_TBL = 15;
int[] sbc_proto_4 = new int[] { 0xec1f5e60 >> SCALE_PROTO4_TBL };
int[] sbc_proto_4 = new int[] { unchecked((int)0xec1f5e60) >> SCALE_PROTO4_TBL };