专栏首页sickwormJava右移每32位(64位)循环

Java右移每32位(64位)循环

long a = 33; for (int i = 0; i < 64; i++) { System.out.println(i + " " + (a >> i)); }

12345

long a = 33;        for (int i = 0; i < 64; i++) {            System.out.println(i + " " + (a >> i));        }

结果:

0 33 1 16 2 8 3 4 4 2 5 1 6 0 7 0 ... 62 0 63 0

123456789101112

0 331 162 83 44 25 16 07 0...62 063 0

而如果是int, short, byte:

int a = 33; // short, byte 也一样 for (int i = 0; i < 64; i++) { // i 为 short, byte也一样 System.out.println(i + " " + (a >> i)); }

12345

int a = 33; // short, byte 也一样        for (int i = 0; i < 64; i++) { // i 为 short, byte也一样            System.out.println(i + " " + (a >> i));        }

结果是:

0 33 1 16 2 8 3 4 4 2 5 1 6 0 7 0 ... 30 0 31 0 32 33 33 16 34 8 35 4 36 2 37 1 38 0 39 0 40 0 41 0 ... 62 0 63 0

12345678910111213141516171819202122232425

0 331 162 83 44 25 16 07 0...30 031 032 3333 1634 835 436 237 138 039 040 041 0...62 063 0

  • 为何出现这样的情况?
  • 猜测是机器码只会截取低8bit/4bit作为移位量。(需反编译,待续)
  • 为何int short boolean和long不一样?
  • Java运算时默认将操作数扩展为int(long位数大于int所以不会变化),所以int,short,boolean结果都是32位一次循环。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 10. Kotlin 类声明和构造器(constructor)

    Java 的构造器声明和方法声明没有太大区别,也支持重载,唯一的限制是:必须调用父类构造器(如果父类只有一个构造器而且是无参的,编译器会帮你自动加上,这是特例)...

    sickworm
  • Android中Activity/Service获取调用者的信息(FIDO UAF Client获取调用者的信息)

    实现UAF协议的时候,Client需要获取调用者的信息(获得其APK的签名)。用中文查了半天没查到获取Activity的方法,用英文一下就搜出来了(主要还是看英...

    sickworm
  • 深入理解计算机系统(第三版)/ CSAPP 杂谈,第11章:网络编程

    int socket(int domain, int type, int protocol) // 创建套接字描述符,成功返回非负数描述符,失败为-1 int ...

    sickworm
  • 一篇文章带你了解HTML5 MathML

    HTML5 可以在文档中使用 MathML 元素,对应的标签是 <math>...</math> 。

    前端进阶者
  • 两个成倍提高工作效率的 Vim 使用技巧

    小小科
  • 游戏服务器之多线程发送(下)

    5、发送缓冲区数据 检查可发送该线程的相关联的所有会话上的发送缓冲区的数据,检查完后,发送会话上的发送缓冲区的数据。 VOID ExecSockDataMgr:...

    李海彬
  • LeetCode86|只出现一次的数字II

    最近这三题的相似程度都很像,所以除了第一题给出了两种解法之外,对于另外的两个题,自己目前还是以比较熟练的键值对hashMap来做了,但是后续有时间的话,自己在慢...

    码农王同学
  • cssjshtml vue直接调用elasticsearch接口

    通过headers中设置:Authorization  来通过验证,Authorization通过正常登陆页面后在headers中获取。此方法牺牲了安全。

    葫芦
  • 阿里电商专家投身小程序创业:微信正在走淘宝走过的路 | 晓访

    知晓君
  • ARTIX-7 FPGA 开发平台 黑金AX7103/AX7A200

    2. 进行实验时:先按教程格式化 TF 卡,然后拷贝相应的音乐(大海.wav, 上海滩.wav)至卡中;

    碎碎思

扫码关注云+社区

领取腾讯云代金券