存储单位转换工具类

计算机存储单位详解:从比特到尧字节 计算机存储单位体系解析:从比特到YB的多级换算 本文系统梳理了计算机存储单位体系,涵盖基础单位和多级换算标准。核心内容包括:1)基础单位比特(bit)和字节(Byte)的定义与换算关系;2)二进制(1024进制)和十进制(1000进制)两种换算体系的差异;3)从KB到YB的9级存储单位换算表;4)实际应用场景中的容量示例;5)单位转换的数学公式和C语言实现代码。特别解释了硬盘标称容量与实际显示差异的原因,并展望了DNA存储等新型存储技术的发展趋势。全文以技术文档形式呈现,包含代码示例和可视化换算方法,为理解 阅读详情

网上找了好久没找到合适的存储单位转换工具类,自己手写了一个转换工具类(大佬勿喷),分享出来,main是使用案例,可做参考!

package com.glory.myselfdemo.utils;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author ***
 */
public class StorageUnitUtil {
    /**
     * bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB、CB……
     */
    enum Unit{
        // 值必须由小到大递增
        bit,
        B,
        KB,
        MB,
        GB,
        TB,
        PB,
        EB,
        ZB,
        YB,
        BB,
        NB,
        DB,
        CB
    }

    /**
     * 换算基数:例: 1024;1000...
     */
    private final static int basic = 1024;

    /**
     * 自动转换:value>=basic,自动向大单位转换,否则返回value
     * @param value 转换前的值(不能为'0'且小于Double.MAX_VALUE)
     * @param currentUnit 转换前的单位
     * @return 返回转后的值和单位字符
     */
    public static String autoConvert(Number value, Unit currentUnit) {
        if (value.doubleValue() == 0 && value.doubleValue() < Double.MAX_VALUE) {
            throw new IllegalArgumentException("需要转换的值不能为0且小于Double.MAX_VALUE");
        }
        return autoToBig(value, currentUnit, null, null);
    }

    /**
     * 自动转换:value>=basic,自动向大单位转换,否则返回value;可定义分隔符或单位后缀
     * @param value 转换前的值(不能为'0'且小于Double.MAX_VALUE)
     * @param currentUnit 转换前的单位
     * @param separatorChar 值和单位中间的分隔符
     * @param unitSuffix 单位后面的后缀
     * @return 返回转后的值和(分隔符<若有>)单位(后缀<若有>)字符
     */
    public static String autoConvert(Number value, Unit currentUnit, String separatorChar, String unitSuffix) {
        if (value.doubleValue() == 0 && value.doubleValue() < Double.MAX_VALUE) {
            throw new IllegalArgumentException("需要转换的值不能为0且小于Double.MAX_VALUE");
        }
        return autoToBig(value, currentUnit, separatorChar, unitSuffix);
    }

    /**
     * 自动转换:valueUnit中的value>=basic,自动向大单位转换,否则返回value
     * @param valueUnit 转换前的值和单位字符
     * @return 返回转后的值和单位字符
     */
    public static String autoConvert(String valueUnit) {
        Map<String, String> map = extractArgument(valueUnit);
        if (map.isEmpty()) {
            throw new IllegalArgumentException("参数无法解析: " + valueUnit);
        } else {
            Number number = Double.valueOf(map.get("number"));
            if (number.doubleValue() == 0 && number.doubleValue() < Double.MAX_VALUE) {
                throw new IllegalArgumentException("需要转换的值不能为0");
            }
            Unit fromUnit = Unit.valueOf(map.get("unit"));
            return autoToBig(number, fromUnit, null, null);
        }
    }

    /**
     * 自动转换:valueUnit中的value>=basic,自动向大单位转换,否则返回value;可定义分隔符或单位后缀
     * @param valueUnit 转换前的值和单位字符
     * @param separatorChar 值和单位中间的分隔符
     * @param unitSuffix 单位后面的后缀
     * @return 返回转后的值和(分隔符<若有>)单位(后缀<若有>)字符
     */
    public static String autoConvert(String valueUnit, String separatorChar, String unitSuffix) {
        Map<String, String> map = extractArgument(valueUnit);
        if (map.isEmpty()) {
            throw new IllegalArgumentException("参数无法解析: " + valueUnit);
        } else {
            Number number = Double.valueOf(map.get("number"));
            if (number.doubleValue() == 0 && number.doubleValue() < Double.MAX_VALUE) {
                throw new IllegalArgumentException("需要转换的值不能为0或超出计算范围");
            }
            Unit fromUnit = Unit.valueOf(map.get("unit"));
            return autoToBig(number, fromUnit, separatorChar, unitSuffix);
        }
    }

    /**
     * 指定转换:指定转换后的单位,valueUnit中的value向指定单位换算成对应的值
     * @param valueUnit 转换前的值和单位字符
     * @param toUnit 转换后的单位
     * @return 返回转后的值和单位字符
     */
    public static String customConvert(String valueUnit, Unit toUnit) {
        Map<String, String> map = extractArgument(valueUnit);
        String result;
        if (map.isEmpty()) {
            throw new IllegalArgumentException("参数无法解析: " + valueUnit);
        } else {
            Number number = Double.valueOf(map.get("number"));
            if (number.doubleValue() == 0 && number.doubleValue() < Double.MAX_VALUE) {
                throw new IllegalArgumentException("需要转换的值不能为0或超出计算范围");
            }
            Unit fromUnit = Unit.valueOf(map.get("unit"));
            int fromOrdinal = fromUnit.ordinal();
            int toOrdinal = toUnit.ordinal();
            if (fromOrdinal == toOrdinal) {
                throw new IllegalArgumentException("当前单位和转换结果的目标单位不能相同");
            }
            // big to small
            if (fromOrdinal > toOrdinal) {
                result = customToSmall(number, fromUnit, toUnit, null, null);
            } else {
                result = autoToBig(number, fromUnit, null, null);
            }
        }
        return result;
    }

    /**
     * 指定转换:指定转换后的单位,valueUnit中的value向指定单位换算成对应的值;可定义分隔符或单位后缀
     * @param valueUnit 转换前的值和单位字符
     * @param toUnit    转换后的单位
     * @param separatorChar 值和单位中间的分隔符
     * @param unitSuffix 单位后面的后缀
     * @return 返回转后的值和(分隔符<若有>)单位(后缀<若有>)字符
     */
    public static String customConvert(String valueUnit, Unit toUnit, String separatorChar, String unitSuffix) {
        Map<String, String> map = extractArgument(valueUnit);
        String result;
        if (map.isEmpty()) {
            throw new IllegalArgumentException("参数无法解析: " + valueUnit);
        } else {
            Number number = Double.valueOf(map.get("number"));
            if (number.doubleValue() == 0 && number.doubleValue() < Double.MAX_VALUE) {
                throw new IllegalArgumentException("需要转换的值不能为0或超出计算范围");
            }
            Unit fromUnit = Unit.valueOf(map.get("unit"));
            int fromOrdinal = fromUnit.ordinal();
            int toOrdinal = toUnit.ordinal();
            if (fromOrdinal == toOrdinal) {
                throw new IllegalArgumentException("当前单位和转换结果的目标单位不能相同");
            }
            // big to small
            if (fromOrdinal > toOrdinal) {
                result = customToSmall(number, fromUnit, toUnit, separatorChar, unitSuffix);
            } else {
                result = autoToBig(number, fromUnit, separatorChar, unitSuffix);
            }
        }
        return result;
    }

    /**
     * 指定转换:指定转换后的单位,value向指定单位换算成对应的值
     * @param value 转换前的值
     * @param currentUnit 转换前的单位
     * @param toUnit 转换后的单位
     * @return 返回转后的值和单位字符
     */
    public static String customConvert(Number value,Unit currentUnit, Unit toUnit) {
        String result;
        if (value.doubleValue() == 0 && value.doubleValue() < Double.MAX_VALUE) {
            throw new IllegalArgumentException("需要转换的值不能为0或超出计算范围");
        }
        int fromOrdinal = currentUnit.ordinal();
        int toOrdinal = toUnit.ordinal();
        if (fromOrdinal == toOrdinal) {
            throw new IllegalArgumentException("当前单位和转换结果的目标单位不能相同");
        }
        // big to small
        if (fromOrdinal > toOrdinal) {
            result = customToSmall(value, currentUnit, toUnit, null, null);
        } else {
            result = autoToBig(value, currentUnit, null, null);
        }
        return result;
    }

    /**
     *
     * 指定转换:指定转换后的单位,value向指定单位换算成对应的值;可定义分隔符或单位后缀
     * @param value 转换前的值
     * @param currentUnit 转换前的单位
     * @param toUnit 转换后的单位
     * @param separatorChar 值和单位中间的分隔符
     * @param unitSuffix 单位后面的后缀
     * @return 返回转换后的值和(分隔符<若有>)单位(后缀<若有>)字符
     */
    public static String customConvert(Number value, Unit currentUnit, Unit toUnit, String separatorChar, String unitSuffix) {
        String result;
        if (value.doubleValue() == 0 && value.doubleValue() < Double.MAX_VALUE) {
            throw new IllegalArgumentException("需要转换的值不能为0或超出计算范围");
        }
        int fromOrdinal = currentUnit.ordinal();
        int toOrdinal = toUnit.ordinal();
        if (fromOrdinal == toOrdinal) {
            throw new IllegalArgumentException("当前单位和转换结果的目标单位不能相同");
        }
        // big to small
        if (fromOrdinal > toOrdinal) {
            result = customToSmall(value, currentUnit, toUnit, separatorChar, unitSuffix);
        } else {
            result = autoToBig(value, currentUnit, separatorChar, unitSuffix);
        }
        return result;
    }

    /**
     * 指定转换:指定转换后的单位,value向指定单位换算成对应的值并返回
     * @param value 转换前的值
     * @param currentUnit 转换前的单位
     * @param toUnit 转换后的单位
     * @return 返回转换后的值 java.lang.Number
     */
    public static Number getNumberConvert(Number value,Unit currentUnit, Unit toUnit) {
        Number number;
        if (value.doubleValue() == 0 && value.doubleValue() < Double.MAX_VALUE) {
            throw new IllegalArgumentException("需要转换的值不能为0或超出计算范围");
        }
        int fromOrdinal = currentUnit.ordinal();
        int toOrdinal = toUnit.ordinal();
        if (fromOrdinal == toOrdinal) {
            throw new IllegalArgumentException("当前单位和转换结果的目标单位不能相同");
        }
        // big to small
        if (fromOrdinal > toOrdinal) {
            number = customToSmall(value, currentUnit, toUnit);
        } else {
            number = autoToBig(value, currentUnit);
        }
        return number;
    }

    /**
     * 指定转换:指定转换后的单位,valueUnit中的value向指定单位换算成对应的值并返回
     * @param valueUnit 转换前的值和单位字符
     * @param toUnit 转换后的单位
     * @return 返回转换后的值 java.lang.Number
     */
    public static Number getNumberConvert(String valueUnit, Unit toUnit) {
        Map<String, String> map = extractArgument(valueUnit);
        Number number;
        if (map.isEmpty()) {
            throw new IllegalArgumentException("参数无法解析: " + valueUnit);
        } else {
            number = Double.valueOf(map.get("number"));
            if (number.doubleValue() == 0 && number.doubleValue() < Double.MAX_VALUE) {
                throw new IllegalArgumentException("需要转换的值不能为0或超出计算范围");
            }
            Unit fromUnit = Unit.valueOf(map.get("unit"));
            int fromOrdinal = fromUnit.ordinal();
            int toOrdinal = toUnit.ordinal();
            if (fromOrdinal == toOrdinal) {
                throw new IllegalArgumentException("当前单位和转换结果的目标单位不能相同");
            }
            // big to small
            if (fromOrdinal > toOrdinal) {
                number = customToSmall(number, fromUnit, toUnit);
            } else {
                number = autoToBig(number, fromUnit);
            }
        }
        return number;
    }

    private static Number customToSmall(Number number, Unit fromUnit, Unit toUnit){
        final int enumIdx = 0;
        final int special = 8;
        final int resultScale = 2;
        int fromOrdinal = fromUnit.ordinal();
        int toOrdinal = toUnit.ordinal();
        int level = fromOrdinal - toOrdinal;
        BigDecimal value = BigDecimal.valueOf(number.doubleValue());
        BigDecimal basicDec = BigDecimal.valueOf(basic);
        BigDecimal specialDec = BigDecimal.valueOf(special);
        if (toOrdinal == enumIdx) {
            level -= 1;
            value = value.multiply(specialDec);
        }
        for (int i = 1; i <= level; i++) {
            value = value.multiply(basicDec);
        }
        value = value.setScale(resultScale, RoundingMode.HALF_UP);
        return formatToLong(value);
    }

    private static String customToSmall(Number number, Unit fromUnit, Unit toUnit, String separatorChar, String unitSuffix) {
        final int enumIdx = 0;
        final int special = 8;
        final int resultScale = 2;
        int fromOrdinal = fromUnit.ordinal();
        int toOrdinal = toUnit.ordinal();
        int level = fromOrdinal - toOrdinal;
        BigDecimal value = BigDecimal.valueOf(number.doubleValue());
        BigDecimal basicDec = BigDecimal.valueOf(basic);
        BigDecimal specialDec = BigDecimal.valueOf(special);
        if (toOrdinal == enumIdx) {
            level -= 1;
            value = value.multiply(specialDec);
        }
        for (int i = 1; i <= level; i++) {
            value = value.multiply(basicDec);
        }
        value = value.setScale(resultScale, RoundingMode.HALF_UP);
        Number resultVal = formatToLong(value);
        String result = String.valueOf(resultVal);
        if (separatorChar != null && !"".equals(separatorChar) && separatorChar.length() > 0) {
            result = result.concat(separatorChar);
        }
        result = result.concat(toUnit.name());
        if (unitSuffix != null && !"".equals(unitSuffix) && unitSuffix.length() > 0) {
            result = result.concat(unitSuffix);
        }
        return result;
    }

    private static Map<String, String> extractArgument(String valUnit) {
        Map<String, String> map = new HashMap<>();
        Unit[] units = Unit.values();
//        String unitsStr = Arrays.stream(units).map(Enum::name).collect(Collectors.joining("|"));
        StringBuilder builder = new StringBuilder();
        for (Unit unit : units) {
            String name = unit.name();
            builder.append(name);
            if (unit.ordinal() < (units.length - 1)) {
                builder.append("|");
            }
        }
        final String regex = "^(\\d+[.]?\\d*)\\s*(" + builder + ")$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(valUnit);
        while (matcher.find()) {
            map.put("number", matcher.group(1));
            map.put("unit", matcher.group(2));
        }
        return map;
    }

    private static Unit getUnitByOrdinal(int ordinal) {
        Unit[] units = Unit.values();
        for (Unit unit : units) {
            if (unit.ordinal() == ordinal) {
                return unit;
            }
        }
        throw new IllegalArgumentException("未录入该存储单位");
    }

    private static Number autoToBig(Number val, Unit fromUnit) {
        final int enumIdx = 0;
        int fromOrdinal = fromUnit.ordinal();
        if (enumIdx == fromOrdinal) {
            val = bitToByte(val);
            fromOrdinal += 1;
        }
        // 计算时尽量保持精确度 保留10位小数s
        final int scale = 10;
        // 返回时保留2位小数
        final int resultScale = 2;
        BigDecimal smallVal = BigDecimal.valueOf(val.doubleValue());
        BigDecimal basicVal = BigDecimal.valueOf(basic);
        while (smallVal.compareTo(basicVal) >= 0 && (fromOrdinal < Unit.values().length - 1)) {
            smallVal = smallVal.divide(basicVal, scale, RoundingMode.HALF_UP);
            fromOrdinal += 1;
        }
        smallVal = smallVal.setScale(resultScale, RoundingMode.HALF_UP);
        return formatToLong(smallVal);
    }

    private static String autoToBig(Number val, Unit fromUnit, String separatorChar, String unitSuffix) {
        final int enumIdx = 0;
        int fromOrdinal = fromUnit.ordinal();
        if (enumIdx == fromOrdinal) {
            val = bitToByte(val);
            fromOrdinal += 1;
        }
        // 计算时尽量保持精确度 保留10位小数s
        final int scale = 10;
        // 返回时保留2位小数
        final int resultScale = 2;
        BigDecimal smallVal = BigDecimal.valueOf(val.doubleValue());
        BigDecimal basicVal = BigDecimal.valueOf(basic);
        while (smallVal.compareTo(basicVal) >= 0 && (fromOrdinal < Unit.values().length - 1)) {
            smallVal = smallVal.divide(basicVal, scale, RoundingMode.HALF_UP);
            fromOrdinal += 1;
        }
        Unit toUnit = getUnitByOrdinal(fromOrdinal);
        smallVal = smallVal.setScale(resultScale, RoundingMode.HALF_UP);
        Number number = formatToLong(smallVal);
        String result = String.valueOf(number);
        if (separatorChar != null && !"".equals(separatorChar) && separatorChar.length() > 0) {
            result = result.concat(separatorChar);
        }
        result = result.concat(toUnit.name());
        if (unitSuffix != null && !"".equals(unitSuffix) && unitSuffix.length() > 0) {
            result = result.concat(unitSuffix);
        }
        return result;
    }

    private static Number bitToByte(Number bitSize) {
        final int basic = 8;
        final int scale = 10;
        double bitDouble = bitSize.doubleValue();
        if (bitDouble == 0) {
            return bitSize;
        }
        BigDecimal bitDec = BigDecimal.valueOf(bitDouble);
        BigDecimal basicDec = BigDecimal.valueOf(basic);
        BigDecimal byteDec = bitDec.divide(basicDec, scale, RoundingMode.HALF_UP);
        return formatToLong(byteDec);
    }

    private static Number formatToLong(Number val) {
        double d = val.doubleValue();
        long l = val.longValue();
        if (d == l) {
            return l;
        }
        return val;
    }

    public static void main(String[] args) {

        String s1 = autoConvert(10240, Unit.KB);
        System.out.println("s1 = " + s1);
        //s1 = 10MB

        String s2 = autoConvert(8192, Unit.KB, " ", "/s");
        System.out.println("s2 = " + s2);
        //s2 = 8 MB/s

        String s3 = autoConvert("10240TB");
        System.out.println("s3 = " + s3);
        //s3 = 10PB

        String s4 = autoConvert("1023GB", " ", "/每天");
        System.out.println("s4 = " + s4);
        //s4 = 1023 GB/每天

        String s5 = customConvert("1TB", Unit.bit);
        System.out.println("s5 = " + s5);
        //s5 = 8796093022208bit

        String s6 = customConvert(1, Unit.TB, Unit.bit);
        System.out.println("s6 = " + s6);
        //s6 = 8796093022208bit

        String s7 = customConvert("1CB", Unit.YB);
        System.out.println("s7 = " + s7);
        //s7 = 1099511627776YB

        String s8 = autoConvert(9.8938489077261e+27,Unit.bit);
        System.out.println("s8 = " + s8);
        //s8 = 1023YB

        String s9 = customConvert(1024, Unit.B, Unit.bit, " ", null);
        System.out.println("s9 = " + s9);
        //s9 = 8192 bit

        String s10 = customConvert("1024KB", Unit.MB, " ", "/s");
        System.out.println("s10 = " + s10);
        //s10 = 1 MB/s

        Number n1 = getNumberConvert("1024GB", Unit.MB);
        System.out.println("n1 = " + n1);
        //n1 = 1048576

        Number n2 = getNumberConvert(1024, Unit.KB, Unit.MB);
        System.out.println("n2 = " + n2);
        //n2 = 1
    }


}

计算机中存储单位换算 计算机中常用的存储单位有位(bit)、字节(byte)、千字节(kilobyte,KB)、兆字节(megabyte,MB)、千兆字节(gigabyte,GB)、太字节(terabyte,TB)等。将千兆字节(GB)转换为太字节(TB):千兆字节数除以 1024。将字节(bytes)转换为千字节(KB):字节数除以 1024。将兆字节(MB)转换为千兆字节(GB):兆字节数除以 1024。将千字节(KB)转换为兆字节(MB):千字节数除以 1024。1 兆字节(MB) = 1024 千字节(KB) 阅读详情

相关推荐

java计算机硬盘大小转换(B,KB,MB,GB,TB,PB之间的大小转换)

java计算机硬盘大小转换(B,KB,MB,GB,TB,PB之间的大小转换) java 硬盘大小转换 数据转换 内存转换 存储大小转换

Java 计量单位换算 工具类

使用枚举进行简单计算,现在只有简单常用的单位,如有需要自行添加,以标准单位为基准 源码Gitee 参考代码 import lombok.AllArgsConstructor; import lombok.Getter; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import.

叁金Coder 3849

优雅的实现计算机容量Bit Byte KB等互相转换-Java工具类

日常工作中, 偶尔会遇到计算机容量之间的相互转换. 众所周知计算机的基本存储单位有Bit, Byte, KB, MB, GB, TB等. 这里参考 TimeUnit 实现一套优雅的计算机容量互相转换工具, 并提供一个支持自动升级容量单位的方法. 工具类源码 https://gitee.com/zture/spring-test/blob/master/demo/src/main/java/cn/diswares/blog/demo/util/StoreUnit.java 实现思路 创建枚举类 Stor

Java Developer Blog 1267

java 字节转换成MB,GB,TB和MB,GB,TB转成字节的工具类

java字节与MB,GB,TB的相互转换

qq_42643690的博客 2071

计算机内部的单位换算(内存)byte B KB MB GB TB

1 byte (B 字节) = 8 bits (b 比特位,0或1)1 KB = 1024 (2^10) byte1MB = 1024 KB1GB = 1024 MB1TB = 1024 GB

m0_58381606的博客 9122

Java枚举

概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下: enum Color { RED, GREEN, BLUE } 如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚举类型举例,它的枚举常量依次为 RED:0,GREEN:1,BLUE:2。 枚举的好处:可以将常量组织起来,统一进行管理。 枚举的典型应用场景:错误码、状态机等。 枚举类型的本质 尽管 enum 看起来像是一种新的

SONGLILAOBAIJIN的博客 554

数据存储单位转换,b、byte、KB、MB、GB、TB转换工具类

数据存储单位转换,b、byte、KB、MB、GB、TB转换工具类

today_liqiu的博客 1457

数据存储单位格式转换

数据存储单位格式转换:1、给一组单位为B的数据,根据数据的大小进行不同单位的转换,如:1048576转换成1MB,1073741824转换成GB;2、给一组单位为B的数据,根据一个选定的数据的单位进行转换,如:统一的转换单位和换算数值为:KB,后续数据都以KB为单位进行转换

weixin_46955291的博客 542

Java实现存储单位转换

存储单位转换工具 1 Kilo Byte(KB) = 1024 Byte(B) 1 Mega Byte(MB) = 1024 KB 1 Giga Byte (GB)= 1024 MB 1 Tera Byte(TB)= 1024 GB 1 Peta Byte(PB) = 1024 TB /** * 存储单位转换工具 * * @author volitation * */ publ...

飞翔的博客 1万+

文件大小自动转换工具类

文件大小自动转换

qq_40358025的博客 379

python单位转换编程_Python字节单位转换实例

我就废话不多说了,直接上代码!from enum import Enumclass Values():values={'B':1}@staticmethoddef getValues():if len(Values.values)<=1:kbunits=['KB','MB','GB','TB','PB','EB','ZB','YB','BB','NB','DB']kibunits=['KiB...

weixin_39747399的博客 596

python中单位转换_Python字节单位转换实例

我就废话不多说了,直接上代码! from enum import Enumclass Values():values={'B':1}@staticmethoddef getValues():if len(Values.values)<=1:kbunits=['KB','MB','GB','TB','PB','EB','ZB','YB','BB','NB','DB']kibunits=['Ki...

weixin_35394437的博客 1755

3.2、IPV4 的地址分类

本文基于 IPV4 IPV4 地址长度 IPV4 地址总共4个字节,即32位二进制数 网络地址(net_id)和主机地址 (host_id)的概念 IPV4 地址总共有4个字节,组成方式为 网络地址+主机地址。网络地址用于区分不同的网落,主机地址表示该局域网下的具体的主机。二者依靠子网掩码进行与运算进行区分。 注意:根据 IPV4 对网络的分类,网络地址并不是必须的,比如 D

༺ bestcxx的专栏 ༻ 1690

java单位转换工具类(UnitConversionUtils)

UnitConversionUtils是一个Java工具类,用于进行单位转换。它提供了一系列静态方法,可以将各种单位之间进行转换。该工具类包含了常见的长度、面积、体积、温度、时间、速度、质量和压力等单位的转换方法。用户可以通过调用这些方法来实现单位之间的转换。例如,该工具类提供了将米转换为厘米、英寸、英尺和码的方法。用户可以传入一个数值和需要转换的目标单位,工具类将返回相应的转换结果。另外,该工具类还提供了将摄氏度转换为华氏度和开尔文度的方法。

Flying_Fish_roe的博客 1759

HarmonyOS NEXT ArkTS 实战:构建「计算机工具箱」三合一 App

模块功能使用场景🔢 进制转换2/8/10/16 进制互转编程调试、位运算、编码学习💾 单位换算bit ~ TB 存储单位互转硬盘容量、文件大小、带宽计算📋 ASCII 码表0~127 完整码表查询字符编码学习、协议调试// 输入框文本// 当前输入进制(默认十进制)// 二进制结果// 八进制结果// 十进制结果// 十六进制结果五个@State变量分别驱动 UI 中的输入框和四个结果行。类别知识点在项目中的应用装饰器@Entry标记页面入口装饰器。

geilegeile的博客 220

存储单位和进制转换

进制转换

m0_74956866的博客 455

计算机存储单位字节(Byte)以及单位之间的转换

字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型或语言字符。bit意为“位”或“比特”,是计算机运算的基础,属于二进制的范畴;Byte意为“字节”,是计算机文件大小的基本计算单位;这两者应用的场合不同。通常用bit来作数据传输的单位,因为物理层,数据链路层的传输对于用户是透明的,而这种通信传输是基于二进制的传输。在应用层通常是用 Byte 来作单位,表示文件的大小,在用户看来就是可见的数据大小。比如一个字符就是1Byte,如果是汉字,则是2Byte。

ThisEqualThis的博客 7207

android mb kb单位转换,存储单位换算(KB, MB, GB)

关于存储单位换算,大家一般会想到下面的换算方法。1GB=1024MB1MB=1024KB1kb=1024字节但实际生活中,这种换算方法并不准确。例如在商家生产销售的硬盘, U盘中就不是这样换算的。商家眼中的换算方法是这样的:1GB=1000MB1MB=1000KB1kb=1000字节因此我们常常会发现买回来的硬盘没有商家的所宣传那么大。比如1T的硬盘,按我们的想法应该是1024GB大小。但实际只...

weixin_39955142的博客 2210
上一篇: IDEA类注释和方法注释
Java_Glory
博客等级 码龄8年 66粉丝 68原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值