作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我试图理解一段代码,但无法清楚地了解一些要点这是Java代码
private String firstMethod(int number){
return secondMethod(number >> 16 & 0xFF, 0).concat(secondMethod(number >> 8 & 0xFF, 1)).concat(secondMethod(number & 0xFF, 7));
}
private static String secondMethod(int value, int offset)
{
return thirdMethod(value >> 4, offset).concat(thirdMethod(value & 0xF, offset + 4));
}
private static String thirdMethod(int value, int offset)
{
String chars = getAlphabet();
int pos = (value + offset) % 16;
return chars.substring(pos, pos + 1);
}
第一次传递给 firstMethod
的值是一个随机数,所有后续调用方法都会传递递增 1 的值。
按位右移操作我很清楚,&0xFF
的使用我也很清楚,但是下面几点我还是不太清楚
谁能帮我理解这两点
最佳答案
Shifting given value by specific number (like 16 and 8 for first than no sift etc)
您正在将字节打印为十六进制。每个字节都是 8 位,所以你想将每个字节移动
Not clear about use of offset ,specifically passing certain number as offset.
我很确定偏移量是 a) 不正确,b) 一种非常晦涩的屏蔽/编码数据的方式。
要将数字打印为 6 字节的十六进制十进制字符串,您可以这样做。
System.out.println(String.format("%06x", 12345));
打印
003039
这要短得多。 ;)
>>>
的优先级低得惊人。这意味着
number >> 16 & 0xFF
实际上是
number >> (16 & 0xFF)
或
number >> 16
你的意思是
(number >> 16) & 0xFF
或者结果是无符号的。
(number >>> 16) & 0xFF
关于java - 按位右移和 0xFF | java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25594113/
我正在做一个项目,我的 android 在这个项目中作为一个网络服务器工作;输入带端口号的 IP 地址,打开 Web 界面,用户可以将文件上传到手机。我想在 Web 界面上显示一些图片,以便我们的界面
我是一名优秀的程序员,十分优秀!