|   |      1 
                                  4
                             答案取决于你输入的低31位代表什么。 
   无符号输入:
    二补(期望输出:-271317440)一个 整数是其中一个-1设置了所有位,并且从那里开始向下倒数。第一个位仍然充当符号位。 如果较低的31位表示2的补码整数,那么我认为您应该能够这样做: 这是因为Java在内部将整数存储在2的补码中:我们所做的就是向左移位,然后向右移位(有符号),这样符号位就被拾取,整数从31位变为32位。 互补(期望输出:-802424384)一 补足 如果较低的31位代表 补足 整数(即符号位后跟表示无符号量值的30位),然后需要将其转换为2的补码,以便Java正确地提取值。要做到这一点,只需提取较低的30位并乘以-1: 当我把-271317440除以3600000,得到-75.365955555556 ,所以我猜您的输入格式是2的补码,所以我的第一个和原始答案是正确的。 | 
|   |      2 
                                  0
                             
  |