首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何打印一个长在贾斯敏?

如何打印一个长在贾斯敏?
EN

Stack Overflow用户
提问于 2014-10-10 22:57:11
回答 2查看 1.4K关注 0票数 2

我可以用jasmin打印一个整数,如下所示:

代码语言:javascript
复制
getstatic java/lang/System/out Ljava/io/PrintStream;
bipush 7
invokevirtual java/io/PrintStream/println(I)V

println的参数是什么来打印一个长的(64位整数)?

我尝试过invokevirtual java/io/PrintStream/println(L)V,但是汇编程序告诉我(L)V是非法签名。(注意:当我试图调用此方法时,System.out和long都在堆栈中。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-13 02:41:29

我以前也有这方面的麻烦。L是为文字对象名保留的,不能用于打印longs。但是,J可以用于打印长(64位)值。

所以,您的代码应该是:

getstatic java/lang/System/out Ljava/io/PrintStream; ldc2_w 7 invokevirtual java/io/PrintStream/println(J)V

票数 2
EN

Stack Overflow用户

发布于 2014-10-13 02:45:19

您可以使用l2i打印较小的长(64位)值,但这可能会导致丢失符号位和其他信息。你应该用

invokevirtual java/io/PrintStream/println(J)V

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26309203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档