zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

    通过MessageDigest可以获取到16个字节数组:

    MessageDigest md5 = MessageDigest.getInstance("MD5");
    byte[] digest = md5.digest(str);

    接着遍历字节数组,将每个字节进行16进制转换

    
    
    char hex[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
    '9', 'a', 'b', 'c', 'd', 'e', 'f' };
    for (int x = 0; x < digest.length; x++) {
        sbr.append(hex[digest[x] >> 4 & 0x0f]) // 取高4位的10进制值 (代表16进制)
          .append(hex[digest[x] & 0x0f); // 取低4位
    }
    如:byte i = 44;

    转2进制是 0010 1100

    0010 1100 >> 4 = 0010 // 取高4位
    那么 0000 0010 & 0000 1111 = 0000 0010 // 转16进制 - 2

    0010 1100 & 0000 1111 = 0000 1100 // 直接 & 就是低4位的,因为0xf的高4位是0,那么相 & 得到的结果也是 0。 最后转16进制 - c (10进制表示数字12)

    最后,结果就是 0x2c
  • 相关阅读:
    结构体比较
    不定长参数列表用法
    接口
    字符串数据类型
    *和**的打包和解包
    python类常用装饰器
    继承的实现
    map用法
    包的导入和init函数
    协程
  • 原文地址:https://www.cnblogs.com/bingco/p/8977302.html
Copyright © 2011-2022 走看看