首页 > 编程语言 >【java】实现字节数组转int(采用IEEE 754标准)

【java】实现字节数组转int(采用IEEE 754标准)

时间:2024-10-21 15:48:29浏览次数:3  
标签:java 754 int binaryStr float bytes Long length

/**
     * 字节数组转int
     * 采用IEEE 754标准
     *
     * @param bytes
     * @return float
     */
    public int bytesToInt(byte[] bytes) {
        // 获取字节数组转化成的2进制字符串
        String binaryStr = bytesToBinaryStr(bytes);
        // 符号位S
        Long s = Long.parseLong(binaryStr.substring(0, 1));
        // 指数位E
        Long e = Long.parseLong(binaryStr.substring(1, 9), 2);
        // 位数M
        String length = binaryStr.substring(9);
        float m = 0, a, b;
        for (int i = 0; i < length.length(); i++) {
            a = Integer.valueOf(length.charAt(i));
            b = (float) Math.pow(2, i + 1);
            m = m + (a / b);
        }
        Float f = (float) ((Math.pow(-1, s)) * (1 + m) * (Math.pow(2, (e - 127))));
        return (int) (f * 100);
    }

    /**
     * 将字节数组转换成2进制字符串
     *
     * @param bytes
     * @return
     */
    public String bytesToBinaryStr(byte[] bytes) {
        StringBuilder binaryStr = new StringBuilder();
        for (int i = 0; i < bytes.length; i++) {
            String str = Integer.toBinaryString((bytes[i] & 0xFF) + 0x100).substring(1);
            binaryStr.append(str);
        }
        return binaryStr.toString();
    }

标签:java,754,int,binaryStr,float,bytes,Long,length
From: https://blog.csdn.net/h2004118/article/details/143103068

相关文章

  • 【最新Java必过毕设选题】基于微信小程序自助购药小程序全套(程序+万字(源码+万字LW+答
    作品简介 Hi,各位同学好呀!今天向大家分享一个最新完成的高质量毕业设计项目作品基于ssm+uniapp的XXX微信小程序项目评分(最低0分,满分5分)难度系数:3分工作量:5分创新点:3分界面美化:5分使用技术小程序框架:uniapp小程序开发软件:HBuilderX小程序运行软件:微信开发者......
  • Java中集合知识上
    集合知识集合的体系结构单列集合(Collection)Collection的方法各方法细节:Collection系列集合的三种通用遍历1.迭代器遍历2.增强for遍历3.lambda表达式遍历(含lambda介绍)List系列集合:List集合的特有方法:List集合的特有方法细节:注意点(重构方法调用优先级):List系......
  • java+vue计算机毕设二手交易平台【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着经济的快速发展和人们生活水平的提高,商品更新换代的速度日益加快,大量闲置物品应运而生。这些物品对于持有者而言可能已失去使用价值,但对于其他人......
  • [java毕业设计]免费分享一套SpringBoot+Vue大学生(校园)志愿者管理系统【论文+源码+SQ
    大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue大学生(校园)志愿者管理系统,分享下哈。项目视频演示【免费】SpringBoot+Vue大学生(校园)志愿者管理系统Java毕业设计_哔哩哔哩_bilibili项目介绍随着信息化时代的到来,管理系统都趋向于智能化、系统化,校园志愿者......
  • JAVA基础之十-不常用但是又希望能看懂的关键字/保留字
    对于绝大部分JAVA工程师而言,大部分的关键字也是能够看懂的,但还是相当一部分比较不常见的关键字,妨碍了代码阅读。本文力图收集一些个人认为在CRUD机械工作中可能比较少见的一些关键字/保留字。此类关键字主要用于修饰方法和类。收集过程会持续一段时间,现在暂时没有时间也没有必......
  • java+vue计算机毕设高龄老人服务管理系统【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着社会老龄化的不断加剧,高龄老人群体的生活照护与服务管理成为了一个亟待解决的社会问题。随着医疗技术的进步和生活水平的提高,老年人的寿命不断延......
  • Java第四章
    1、类的继承类的继承可以实现代码的复用,是实现多态的基础。通过继承可以使多种事物之间形成一种关系体系。子类继承父类的属性和方法,使得子类对象具有父类的特征和行为。在程序中,如果想声明一个类继承一个类,需要使用extends关键字,语法格式如下:class父类{......}class子类......
  • [Javascript] Write memoize function
    classMemoizeMap{constructor(){this._map=newMap();this._weakMap=newWeakMap();}_isObject(v){returntypeofv==="object"&&v!==null;}set(key,value){if(this._isObject(key)){this._......
  • Leetcode 160. Intersection of Two Linked Lists
    Leetcode160.IntersectionofTwoLinkedLists错解一开始没看清题目的要求中,提到最后表结构不能变,想到的做法是:先遍历A,把A翻转,然后B就可以走到headA判断出它们是否相交,但是即便如此,也不能判断出相交点在哪里,而且还会破坏链表的结构,所以这种写法不行。正解classSolution{......
  • Java 当中使用 “google.zxing ”开源项目 和 “github 的 qrcode-plugin” 开源项目
    Java当中使用“google.zxing”开源项目和“github的qrcode-plugin”开源项目生成二维码@目录Java当中使用“google.zxing”开源项目和“github的qrcode-plugin”开源项目生成二维码1.Java当中使用“google.zxing”开源项目生成二维码1.1准备工作1.2生成......