bytes[i] 0xf0是怎么运算的
**
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是怎么运算的相关推荐
- 01 Python学习--第一周--开课介绍、数据类型、数据运算、表达式、循环、三元运算、对象基本概念...
模块一主要内容 开课介绍 python发展介绍 第一个python程序 变量 字符编码与二进制 字符编码的区别与介绍 用户交互程序 if else流程判断 while 循环 while 循环优化版本 ...
- Android安全加密:消息摘要Message Digest
Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...
- java中的进制输出转换_java中进制的转换,Byte与16进制的转换
java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下: 首先关于最简单的二进制转换的方法有: 十 ...
- 二进制十六进制相互转换
使用Java自带的转换方法也可以但是会有如下情况发生: Integer.toBinaryString(Integer.valueOf("0020",16)).---java自封装的 ...
- 国密算法 SM4 对称加密 分组密码 python实现完整代码
目前,python实现的国密算法库主要是python-gmssl库和snowland-smx(pysmx)库,二者都对SM2(仅公钥加解密和数字签名).SM3.SM4进行了细致而优雅的实现. GMSS ...
- planet_Earth靶场渗透记录
planet_Earth 靶场渗透记录 一.线索资料 1.拿到靶机IP 还从一个逗比那里学了一招,windows中cmd arp -a //也可以拿到靶机IP,前提是两者有交互 A B Kali ? ...
- Java中二进制与十六进制的转换
Java开发过程中,我们常会需要将二进制数组转换为字符串.Spring的工具类DegistUtils提供了相关的方法,那具体的原理是啥呢?其实字符串和字节的转换,关键在于如何取出字节的高四位和低四位. ...
- java 3des解密过程_6. Java 加解密技术系列之 3DES
importjavax.crypto.Cipher;importjavax.crypto.SecretKey;importjavax.crypto.spec.SecretKeySpec;importj ...
- RSA加解密算法的Java实现
main()方法: public static void main(String[] args) throws Exception {// TODO Auto-generated method stu ...
最新文章
- 小程序云开发常用语句宝库
- Netty 源码(ChannelHandler 死磕)
- 深入理解ElasticSearch(七):执行分布式检索
- TCP四次握手释放连接
- shiro学习(23):动态添加验证规则3
- TortoiseGit 冲突和解决方案_入门试炼_07
- M1芯片Mac也可以安装Windows系统啦 使用PD16虚拟机安装ARM版Windows10教程
- Oracle表空间大小的限制和DB_BLOCK_SIZE的概念
- 事务回滚什么意思 try_Spring事务管理(一)快速入门
- c语言fread参数,C语言fread函数
- 无法保存此文档。它可能是只读的,或者正在被其他应用程序使用
- ps考证是人改分的还是电脑
- python中stack.stack_Python stack
- c语言中calc是什么函数,CSS 3 中的计算函数 calc() 有啥用?
- java 判断图片合适,Java 判断图片色彩
- 【AI绘画】二次元小姐姐生成!春节版!
- https://www.toutiao.com/a6457425756212429325/?tt_from=mobile_qqutm_campaign=client_shareapp=news_a
- Orangepi 5 Unixbench基准测试结果
- 二叉树面试题:前中序求后序、中后序求前序
- 徐佳计算机教授,计算机与软件学院第六届ECNU Coder程序设计竞赛成功举办