这怎么才能转化为int型,为什么不能通过编绎?

图片说明!图片说明

long占用范围比int大。你那样可能会丢失数据,转换还有啥意义

如果非要转的话,可以以下方式
Integer.toBinaryString((int)L);

对,先把长整型转为int,然后再那么干

你是想打印数值i的二进制字符串吗?直接用System.out.println(Long.toBinaryString(i));不行吗?

编译器在长转短的时候会意识到可能要丢失数据,你要强转必须得告诉他你知道自己在干什么并承担丢失数据的风险。
long i = -1;
int j = (int) i;