**

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,就说这么多了。

例子:

byte byte62 = (byte)((0x21 & 0xF0));
byte byte62 = (byte)((0x20& 0xF0));
System.out.println(byte62);----得到的都是32 (byte)((0x22 & 0xF0)>>4);
(byte)((0x20 & 0xF0)>>4);
-----得到的都是2

bytes[i] 0xf0是怎么运算的相关推荐

  1. 01 Python学习--第一周--开课介绍、数据类型、数据运算、表达式、循环、三元运算、对象基本概念...

    模块一主要内容 开课介绍 python发展介绍 第一个python程序 变量 字符编码与二进制 字符编码的区别与介绍 用户交互程序 if else流程判断 while 循环 while 循环优化版本 ...

  2. Android安全加密:消息摘要Message Digest

    Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...

  3. java中的进制输出转换_java中进制的转换,Byte与16进制的转换

    java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下: 首先关于最简单的二进制转换的方法有: 十 ...

  4. 二进制十六进制相互转换

    使用Java自带的转换方法也可以但是会有如下情况发生: Integer.toBinaryString(Integer.valueOf("0020",16)).---java自封装的 ...

  5. 国密算法 SM4 对称加密 分组密码 python实现完整代码

    目前,python实现的国密算法库主要是python-gmssl库和snowland-smx(pysmx)库,二者都对SM2(仅公钥加解密和数字签名).SM3.SM4进行了细致而优雅的实现. GMSS ...

  6. planet_Earth靶场渗透记录

    planet_Earth 靶场渗透记录 一.线索资料 1.拿到靶机IP 还从一个逗比那里学了一招,windows中cmd arp -a //也可以拿到靶机IP,前提是两者有交互 A B Kali ? ...

  7. Java中二进制与十六进制的转换

    Java开发过程中,我们常会需要将二进制数组转换为字符串.Spring的工具类DegistUtils提供了相关的方法,那具体的原理是啥呢?其实字符串和字节的转换,关键在于如何取出字节的高四位和低四位. ...

  8. java 3des解密过程_6. Java 加解密技术系列之 3DES

    importjavax.crypto.Cipher;importjavax.crypto.SecretKey;importjavax.crypto.spec.SecretKeySpec;importj ...

  9. RSA加解密算法的Java实现

    main()方法: public static void main(String[] args) throws Exception {// TODO Auto-generated method stu ...

最新文章

  1. Boost Asio总结(5)class tcp
  2. 【实施工程师之家】linux安装tomcat(yum安装tomcat)
  3. ubuntu更换下载源
  4. UNION JOIN 连接表
  5. css 幻灯片_如何使用HTML,CSS和JavaScript创建幻灯片
  6. 图像目标分割_2 FCN(Fully Convolutional Networks for Semantic Segmentation)
  7. Clubhouse 推出漏洞奖励计划,严重漏洞最高可获3000美元
  8. 非常详细的机器学习知识点汇总(二)之SVM23问
  9. Linux入门之常用命令(10)软连接 硬链接
  10. 网络重置有多难搞!!win10网络重置后怎么解决
  11. GIN日志和日志格式
  12. Redis数据结构之SDS
  13. 2016年排名Top 100的Java类库——在分析了47,251个依赖之后得出的结论(16年文章)...
  14. 这玩意儿叫H5编辑器??不应该叫H5全能王吗?
  15. xmind下载安装电脑版教程
  16. Unirech:为什么不能访问阿里云国际版云服务器ecs实例上的网站
  17. 利用python实现修改阿里云DNS值解析
  18. Windows中telnet不是内部或外部命令解决方法
  19. Java--验证码登录
  20. Python列表,元组,字典,集合 练习

热门文章

  1. 【Linux】deb文件如何安装?
  2. Qt小项目之坦克大战、音乐播放器、五子棋
  3. c全日制聋校实验教材语言训练教参小学1册,重审聋校语文实验教材
  4. bootstrap特点
  5. IPV6的原理和配置
  6. 解决电脑自带office删除之后不能下载或者找到正版office的问题
  7. ChatGPT三个关键技术
  8. 17101701_CentOS7下利用init.d启动脚本实现tomcat开机自启动
  9. JS执行器在UI自动化测试中的应用
  10. (PC+WAP)带手机端pbootcms模板五金机电类网站