数字转换 千+、万+、k+、w+、9999w+

数字转换 千+、万+、k+、w+、9999w+

import java.math.BigDecimal;

import lombok.Data;
import lombok.extern.slf4j.Slf4j;

/**
 * 数字转换 千、万、k、w、9999w+
 * 
 * @author xysddjyt
 * @date 2019/11/08 16:34:27
 */
@Data
@Slf4j
public class RelativeNumberFormatTool {

    /**
     * 中文显示
     */
    public static final String CH = "CH";
    /**
     * 拼音显示
     */
    public static final String PY = "PY";

    private static final Long THOUSAND = 1000L;
    private static final Long TEN_THOUSAND = 10000L;
    private static final Long ONE_HUNDRED_MILLION = 100000000L;

    /**
     * 数据转换
     * 
     * @param num
     *            需要转换的数据 支持Long、BigDecimal、Integer、String、int、long类型
     * @param type
     *            需要转换的方式 RelativeNumberFormatTool.CH:中文显示 RelativeNumberFormatTool.PY:拼音显示
     * @return
     */
    public static String relativeNumberFormat(Object temp, String type) {
        Long num = numberFormat(temp);
        if (null == num) {
            return temp + "";
        }
        if (type.equals(PY)) {
            if (num.compareTo(ONE_HUNDRED_MILLION) == 1 || num.compareTo(ONE_HUNDRED_MILLION) == 0) {
                return "9999w+";
            }
            if (num.compareTo(TEN_THOUSAND) == 1 || num.compareTo(TEN_THOUSAND) == 0) {
                return num / TEN_THOUSAND + "w+";
            }
            if (num.compareTo(THOUSAND) == 1 || num.compareTo(THOUSAND) == 0) {
                return num / THOUSAND + "k+";
            }
        } else if (type.equals(CH)) {
            if (num.compareTo(ONE_HUNDRED_MILLION) == 1 || num.compareTo(ONE_HUNDRED_MILLION) == 0) {
                return "9999万+";
            }
            if (num.compareTo(TEN_THOUSAND) == 1 || num.compareTo(TEN_THOUSAND) == 0) {
                return num / TEN_THOUSAND + "万+";
            }
            if (num.compareTo(THOUSAND) == 1 || num.compareTo(THOUSAND) == 0) {
                return num / THOUSAND + "千+";
            }
        }
        return num + "";
    }

    /**
     * 格式化数据为Long类型
     */
    public static Long numberFormat(Object number) {
        if (number != null && !"".equals(number)) {
            if (number instanceof BigDecimal) {
                return ((BigDecimal)number).longValue();
            }
            if (number instanceof Integer) {
                return ((Integer)number).longValue();
            }
            if (number instanceof Long) {
                return (Long)number;
            }
            if (number instanceof String) {
                try {
                    return Long.valueOf(number + "");
                } catch (Exception e) {
                    log.info("字符串数字转换失败,请检查!" + e.getMessage(), e);
                }
            }
        }
        return null;
    }

    public static void main(String[] args) {
        BigDecimal a = new BigDecimal(103);
        int c = 8350;
        Integer c1 = 1000000;
        String str = "1000";
        long bb = 13544l;
        Long bb1 = 3624l;

        System.out.println(relativeNumberFormat(a, CH));
        System.out.println(relativeNumberFormat(c, CH));
        System.out.println(relativeNumberFormat(c1, CH));
        System.out.println(relativeNumberFormat(str, CH));
        System.out.println(relativeNumberFormat(bb, CH));
        System.out.println(relativeNumberFormat(bb1, CH));
        System.out.println(relativeNumberFormat(a, PY));
        System.out.println(relativeNumberFormat(c, PY));
        System.out.println(relativeNumberFormat(c1, PY));
        System.out.println(relativeNumberFormat(str, PY));
        System.out.println(relativeNumberFormat(bb, PY));
        System.out.println(relativeNumberFormat(bb1, PY));
    }
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1、 完成课本习题 3.2(a)(b), 课本中文版《处理》第二版的 113 页。可以通过 matlab 帮助你分析理解。 (a) S=T(r)= Ε (m/r) + 1 1 2、一幅 8 灰度级图像具有如下所示的直方图,求直方图均衡后的灰度级和对应概率,并画出均衡后的直方图的 示意图。 (图中的 8 个不同灰度级对应的归一化直方图为[0.17 0.25 0.21 0.16 0.07 0.08 0.04 0.02]) 由公式可知,变换函数的离散形式为 k=0,1,2,3…L-1 所以 S0=0.17 S1=S0+0.25=0.42 S2=S1+0.21=0.63 S3=S2+0.16=0.79 S4=S3+0.07=0.86 S5=S4+0.08=0.94 S6=S5+0.04=0.98 S7=S6+0.02=1 因为输出图像的灰度级是等间隔的,同时该图像具有 8 个灰度级 1/7,2/7,3/7,4/7,5/7,6/7,1 对之前求得的 Sk 进行修正 S0=1/7 S1=3/7 S2=4/7 S3=6/7 S4=6/7 S5=1 S6=1 S7=1 最后的灰度级仅有 5 个结果 S0=1/7 S1=3/7 S2=4/7 S3=6/7 S4=1 与此相对应的概率为 PS(s0)=0.17 PS(s1)=0.25 PS(s2)=0.21 PS(s3)=0.23 PS(s4)=0.14 3. (选做题)课本习题 3.6。对于离散的情况,用 matlab 进行一下实验。 一样。直方图均衡化的结果一次到达极限。 对于离散的情况,设 n 为图像中像素的总和, k n 1 为输入图像中灰度级为 k r 的像素的个数。 所以,直方图均衡化的转换公式为: k j k k j k k k n n n n r T s 0 = 1 0 = 1 1 = / = ) ( = 由于输入图像中灰度级为 k r 的像素被映射到输出图像灰度级为 k s 的对应像素得到,所以 k k n n 2 1 = 那么,在第二次均衡化的过程中,转换函数为 k j k k k n n s T v 0 = 2 1 = ) ( = 所以,两次转换过程 k k v n = ,既结果相同。 4. 4 完成课本数字图像处理第二版 114 页,习题 3.10。 对于作图, r r dw w dw w p r T s r r r 2 ) 2 2 - ( ) ( ) ( 2 0 0 1 对于右图, 2 0 0 2 2 ) ( ) ( z wdw dw w p z T v z z z 所以, 2 2 r r z 4.请围绕本周课堂讲授的内容编写至少一道习题,并给出自己的分析解答。题目形式可以是填空题、选择题、判断 对错题、计算题、证明题。发挥你的创造力吧。 利用 matlab 绘制幂次变换在不同 γ 下的曲线,并分析图像产生差异的原因和不同取值对变换结果产 幂次曲线中的 γ 的部分之吧输入的窄带暗值映射到宽带输出值上,相反,输入高值也对应成立。随着 γ 取值的变 化,我们能够得到一组变换曲线,c= γ =1 时为正比变换, γ >1 时图像偏暗, γ <1 时图像偏亮。 γ >1 时,从图中我 们可以看到输出灰度级大部分被压缩在较低的水平上, γ <1 时,从图中我们可以看到输出灰度级大部分被压缩在 较高的水平上。 2、 请计算如下两个向量与矩阵的卷积计算结果。 (1) [ 1 2 3 4 5 4 3 2 1] *[ 2 0 -2] 设向量 x1=[1 2 3 4 5 4 3 2 1 ],向量 x2=[2 0 -2],添加下划线的元素设定为 0 位置 x1 1 2 3 4 5 4 3 2 1 -x2 -2 0 2 ————————————————————————————————————— 2 4 6 8 10 8 6 4 2 -2 -4 -6 -8 -10 -8 -6 -4 -2 —————————————————————————————————————————— -2 -4 -4 -4 -4 0 4 4 4 4 2 所以卷积结果为:2 4 4 4 4 0 -4 -4 -4 -4 -2 (2) [ 1 0 1 2 0 2 1 0 1 ] [ 1 3 2 0 4 1 0 3 2 3 0 4 1 0 5 2 3 2 1 4 3 1 0 4 2] = 设题目给定的两个矩阵分别为 d 和 e,大小分别为 3x3 和 5x5,卷积结果为一个 7x7 的矩阵 根据卷积公式, ) , ( ) , ( 1 ) , ( * ) , ( 1 0 1 0 n y m x h n m f MN y x h y x f M m N n F(-3,-3)=e(-2,-2)d(-1,-1)=-1 F(-3,-2)=e(
用途广泛的DC-DC转换器,在5V 2A时具有稳定的输出,可用于为arduino,raspberry pi,Jetson Nano等供电。 硬件部件: 德州仪器LMR16020× 1个 软件应用程序和在线服务: Easyeda 手动工具和制造机: 烙铁(通用) 在电动汽车中,电池组两端的电位差始终远大于控制逻辑板工作时的电压。由于需要低压电源线(通常等于5V),因此有必要使用称为“降压转换器”的特殊电子电路。通过这些装置,可以非常有效地转换电压,实际上,可以达到等于95%的η值。 LMR16020选择 在这种情况下,决定通过集成的LMR16020开发降压转换器。该集成的兴趣点如下: • 1.输入电压范围:4、3 V至60V。考虑使用标称电压为48V的电池组,降压转换器工作的电压范围适合应对电池提供的电压 • 2. 2 A连续输出电流。这样的输出电流可以同时为多个低功率设备或单个较大的设备(如Nvidia Jetson Nano)供电。 • 集成式高端Mosfet。这样可以节省PCB上的空间并避免选择合适的MOSFET来提高电路效率的问题 • 关断模式下的OQC超低40μA,电流超低1μA。集成的设计旨在在使用电池的电路中提供出色的性能。由于这些功能,还可以节省能源,延长电池寿命 • 过热,过压和短路保护。并非所有“降压转换器” IC都能保证的非常重要的方面,有可能在发生故障时保留数字逻辑电路 设计所需参数 构建降压转换器所需的参数为: • 输入电压:V_IN 48V • 输出电压:V_OUT 5.0V • 最大输出电流:I_OUT 2.0 A • I_EN 1μA • I_HY S 3.6μA • 瞬态响应0.2 A至2 A:5% • 输出电压纹波:10mV • 输入电压纹波:400 mV • 开关频率:f_SW 600 KHz 输出电压设定点 可以使用由顶部反馈电阻器R FBT和底部反馈电阻器RFBB组成的分压器,根据需要设置LMR16020交付的输出电压。与两个电阻器相关的方程式如下: RFBT =(V_OUT − 0.75)/0.75×RF BB 考虑到V_OUT电压等于5V,为R_FBT选择100kΩ的值,我们得出R_FBB约为17.65kΩ。取整,结果为17.8kΩ。 开关频率 为了计算能够设置工作频率的电阻RT的值,必须考虑以下公式: RT(kΩ)= 42904×fSW(kHz)^(− 1.088) 考虑到600 kHz的工作频率,我们得出RT值为40.72kΩ。因此,最接近理论电阻的实际电阻值为41.2kΩ。 输出电感选择 要选择电感值,必须考虑一些输入参数,但首先要获得最大电流纹波。后者越大,整个电路的效率越差。随着输入电压的增加,LMIN电感的最小值可以使用最大输入电压来计算。将KIND视为代表相对于最大输出电流的电流纹波量的系数,将其设置为令人满意的结果20%。电感值的计算继续如下: △iL = [V OUT×(V IN MAX − V_OUT)] / [V_IN_MAX×L×f_SW] L MIN =(V_IN_MAX − V_OUT)/(I×K_IND)×(V_OUT)/(V_IN_MAX×f_SW) 在这种情况下,选择以下参数进行电感计算: • V_IN_MAX:48 V • V_OUT:5.0 V • f_SW:600 kHz • K_IND:20% 获得的LMIN最小电感值为17.716μH,随后为实际实现选择22.0μH的电感。以这种方式,获得了0.400A的纹波值。 输出电容选择 当转换器处于稳定状态时,降压转换器的输出电容器负责管理输出电压纹波。输出上的这种纹波由两个基本成分组成:第一个是电感器输出上存在的纹波与电容器的等效串联电阻(ESR)相交的结果: △V OUT =△iL×ESR = K_IND×I_OUT×ESR 第二个贡献是由对电容器充电和放电的电感器的纹波引起的: △V_OUT_C =(△i_L)/(8×f_SW×C_OUT)=(种类×IOUT)/(8×f_SW×C_OUT) 由于两个组件彼此异相,因此总输出纹波较低。要计算容量的最小值,请使用以下公式,然后取两个值中的较大者: COUT> 3×(IOH-IOL)/(f_SW×V _US) COUT>(I_OH ^ 2 − I_OL ^ 2)/ [(V_OUT + V_OS)^ 2 − V_OUT ^ 2]×L 考虑以下设计参数: • 种类:20% • IOL:1.6 A • IOH:2.4 A • △V_OUT_C:10毫伏 • V_US:5%V OUT = 250 mV • V_OS:5%V OUT = 250 mV 我们得出COUT不能小于8.33μF。根据显示的最后两个方程式选择COUT得出的最大值作为最小值,我们得出该值

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悬崖上的剁椒鱼头丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值