我需要x%16
,其中x是long
。我的编译器给了我错误
“可能会失去精确度。必需:int; found:long。”
我怎样才能解决这个问题?
编辑:哎呀,我没有意识到我可以将整个事件作为一个int进行投射,我认为它只能将长时间转换成一个int(这会很糟糕)才能让它合作。
答案 0 :(得分:0)
您可以尝试两件事:
x % 16L
x & 0x0000000FL
//你不需要零; 0xFL应该可以工作。这两种技术都会导致long
而不会丢失精度。如果你想要int
,只需在操作之前将x转换为int
,然后删除L后缀。