bytes[i] & 0xf0是怎么运算的
来源:互联网 发布:盘古网络为什么总招人 编辑:程序博客网 时间:2024/06/14 04:24
bytes[i] & 0xf0是如何运算的
StringUtil类:
public class StringUtil {
/*
* 16进制数字字符集
*/
private static String hexString="0123456789ABCDEF";
/*
* 将字符串编码成16进制数字,适用于所有字符(包括中文)
*/
public static String encode(String str)
{
//根据默认编码获取字节数组
byte[] bytes=str.getBytes();
StringBuilder sb=new StringBuilder(bytes.length*2);
//将字节数组中每个字节拆解成2位16进制整数
for(int i=0;i<bytes.length;i++)
{
sb.append(hexString.charAt((bytes[i]&0xf0)>>4));
sb.append(hexString.charAt((bytes[i]&0x0f)>>0));
}
return sb.toString();
}
这个类中的bytes[i]&0xf0)>>4和bytes[i]&0x0f)>>0是什么意思啊,谁知道的能不能举个例子解释一下,谢谢。。。
------解决方案--------------------
byte呢是一个字节,也就是8位,如:0010 0100
而0xf0呢,也是8位:1111 0000
而byte&0xf0呢,就是按位与操作(0&1=0,0&0=0,1&1=1),这样呢就得到0010 0000这样八位表示的字节,然后">>4"操作是向右移四位,最高位用0补,就得到0000 0010。
ok,就说这么多了
StringUtil类:
public class StringUtil {
/*
* 16进制数字字符集
*/
private static String hexString="0123456789ABCDEF";
/*
* 将字符串编码成16进制数字,适用于所有字符(包括中文)
*/
public static String encode(String str)
{
//根据默认编码获取字节数组
byte[] bytes=str.getBytes();
StringBuilder sb=new StringBuilder(bytes.length*2);
//将字节数组中每个字节拆解成2位16进制整数
for(int i=0;i<bytes.length;i++)
{
sb.append(hexString.charAt((bytes[i]&0xf0)>>4));
sb.append(hexString.charAt((bytes[i]&0x0f)>>0));
}
return sb.toString();
}
这个类中的bytes[i]&0xf0)>>4和bytes[i]&0x0f)>>0是什么意思啊,谁知道的能不能举个例子解释一下,谢谢。。。
------解决方案--------------------
byte呢是一个字节,也就是8位,如:0010 0100
而0xf0呢,也是8位:1111 0000
而byte&0xf0呢,就是按位与操作(0&1=0,0&0=0,1&1=1),这样呢就得到0010 0000这样八位表示的字节,然后">>4"操作是向右移四位,最高位用0补,就得到0000 0010。
ok,就说这么多了
阅读全文
0 0
- bytes[i] & 0xf0是怎么运算的
- bytes[i] & 0xf0是怎么运算的
- bytes[i] & 0xf0是怎么运算的
- 浮点运算是怎么实现的?
- 计算机是怎么做乘法运算的
- java中&和&&是怎么运算的
- i=i++到底是怎么执行的
- i++和++i是怎么用的?它们作为函数参数时的使用举例
- i = i++ 之后 i 的值为什么是 0
- 161bytes的PE文件是如何炼成的~
- WORD 是2Bytes还是4bytes?
- Google I/O大会轰动全场的Glass Demo视频是怎么来的?
- 电动工具的I类 II类 III类 是怎么划分的?
- 程序是怎么跑起来的(3)---计算机进行小数运算时出错的原因
- OC中 (i++)+i 的值得运算
- i++与++i的运算规则
- $a = 1; $c = ++$a+(++$a)+($a--)-($a++); echo $c;是怎么运算的
- 0x33f00038是怎么得出来的?
- Python薪资又涨了,这可咋办啊!
- jvm调优总结
- spring的@Transactional注解详细用法
- thinkphp5 使用163邮箱smtp发送邮件教程
- Android自定义View之基本API(三)
- bytes[i] & 0xf0是怎么运算的
- 5.4.1 RegExp实例属性
- windows使用cygwin 安装最新redis
- gettext:Python本地/国际化模块
- mybatis传入多个参数的几种方法
- mysql 5.7.13 安装配置方法图文教程(linux)
- JavaScript-DHTML技术演示(1)
- java中的移位运算符:<<,>>,>>>总结
- 乱七八糟