一直在说
不能将类型'long'隐式转换为'int'。存在显式转换(您是否缺少演员表?)
int lVar10 = 0x7a69;
int uVar12 = lVar10 * 0x1a3 + 0x181d;
lVar10 = uVar12 + ((uVar12 & 0xffffffff) / 0x7262) * -0x7262;
答案 0 :(得分:1)
简而言之,您要操作的数字大于可能的最大int值,特别是在行中
lVar10 = uVar12 + ((uVar12 & 0xffffffff) / 0x7262) * -0x7262;
以十进制表示的数字为2147483647 = 2 ^ 31-1。由于您使用六进制表示数字(前缀为0x),因此单独的0xffffffff已经大于最大整数。
因此,您可以通过声明lVar10和lVar12尽可能长的时间来解决此问题。
答案 1 :(得分:0)
您应该将变量强制转换为long。新增中 (长)应在第三行的=之后解决。
编辑:
此外,您可以首先声明变量lVar10和uVar12。
答案 2 :(得分:0)
您正在尝试将非整数存储到整数变量中。
名为lVar10
的变量可以分配整数。例如,诸如-3
,-2
,-1
,0
,1
,2
,3
之类的值。