十六进制高低位转换,返回十进制数

/**
     * 十六进制高低位转换,返回十进制数
     * @param str
     * @return
     */
    public static String decodeHexStringToDec(String str) {
        str =HighLowHex(spaceHex(str));
        String value =new BigInteger(str, 16).toString();
        return value;
    }

    /**
     * 十六进制数隔空位
     * @param str
     * @return
     */
    private static String spaceHex(String str){
        char[] array= str.toCharArray();
            if(str.length()<=2) return str;
                StringBuffer buffer =new StringBuffer();
                for(int i=0;i<array.length;i++){
                int start =i+1;
                if(start%2==0){
                    buffer.append(array[i]).append(" ");
                }else{
                    buffer.append(array[i]);
                }
            }
        return buffer.toString();
    }

    /**
     * 高位16进制转低位
     * @param str
     * @return
     */
    private static String HighLowHex(String str){
        if(str.trim().length()<=2) return str;
        List<String> list = Arrays.asList( str.split(" "));
        Collections.reverse(list);
        StringBuffer stringBuffer = new StringBuffer();
        for(String string:list){
            stringBuffer.append(string);
        }
        return stringBuffer.toString();
    }

原文地址:https://www.cnblogs.com/huyanlon/p/10337634.html

时间: 2024-10-09 14:23:20

十六进制高低位转换,返回十进制数的相关文章

Objective C - 与Android交互时高低位转换:

在与Android交互过程中,因为Android是从低位往高位读,iOS是从高位往低位读,所以交互数据需要进行转换. /* * convert big endian to little endian in C */ uint16_t swap_uint16( uint16_t val ); int16_t swap_int16( int16_t val ); uint32_t swap_uint32( uint32_t val ); int32_t swap_int32( int32_t val

十六进制高低位分离转换拆分

http://www.cocoachina.com/bbs/read.php?tid=1706049同行解答. 以2016为例:2016(十进制)->0x7E0(十六进制),按照硬件方面要求拆分成0x07,0xE0. //years=2016转换后的0x7E0 NSInteger years // int存 int years; // char取 char highyears=years>>8;//0x70,当years=2016时 char lowyears=years&0xf

洛谷 P1100 高低位交换 题解

此文为博主原创,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=1100 题目描述 给出一个小于2^32的正整数.这个数可以用一个32位的二进制数表示(不足32位用0补足).我们称这个二进制数的前16位为“高位”,后16位为“低位”.将它的高低位交换,我们可以得到一个新的数.试问这个新的数是多少(用十进制表示). 例如,数1314520用二进制表示为0000 0000 0001 0100 0000 1110

【模板小程序】任意长度十进制数转化为二进制(java实现)

妈妈再也不用担心十进制数过大了233 import com.google.common.base.Strings; import java.math.BigInteger; import java.util.Scanner; /** * 任意长度十进制数转化为二进制 */ public class AnyNumberConverterFromDecimalToBinary { /** * * @param srcNum 待转换的十进制数 * @return 二进制字符串 */ private s

OJ刷题之《将十进制、八进制和十六进制数1000对应十进制数输出》

题目描述 将十进制的1234输出 将八进制的1234对应其十进制数进行输出 将十六进制的1234对应其十进制数进行输出 输入 无 输出 1234D=1234D 1234O=668D 1234H=4660D 样例输出 1234D=1234D 1234O=668D 1234H=4660D 提示 输出第二行的"1234O=668D",1234后的是大写字母O,不是数字0 代码如下: #include <iostream> #include <iomanip> usin

0063-二进制转换成十进制

二进制转换成十进制 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 给定一个不超过 10 位的二进制数 n,将其转换成十进制数后输出. 输入 一个符合规范的二进制的数. 输出 一个数,符合题目要求的结果. 输入示例 1000100 输出示例 68 此题考查大家对数学基本知识的了解程度.从二进制转换为十进制的方法为:从右往左数第n位乘2的n次方. 通过while循环(即满足括号里条件是执行操作)进行当n不为零(即未转换完成)时

二进制 八进制 十进制 十六进制之间的转换

一. 十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步:将168除以2,商84,余数为0.  第二步:将商84除以2,商42余数为0. 

Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换

public class DigitalTrans { /** * 数字字符串转ASCII码字符串 * * @param String * 字符串 * @return ASCII字符串 */ public static String StringToAsciiString(String content) { String result = ""; int max = content.length(); for (int i = 0; i < max; i++) { char c

大话二进制,八进制,十进制,十六进制之间的转换

1.前言 每次放假最无聊的事情,就是不想起床,不想吃饭,方正就是不想动,躺在床上,看着手机,无聊的刷着QQ空间,虽然现在已经很少人玩QQ空间,可是这种习惯一直保持到现在,都没有改变过,电脑上的QQ突然闪动着,我知道是丁大叔发来的QQ消息,叫我一起去吃重庆老麻抄手,丁大叔之所以叫大叔,是因为一起上学的时候,被我们班上的女生调戏了一下,所以我时常拿这个调侃他,不过他也从来都不在乎. 我是湖北人,丁大叔是四川人,我俩的口味都一样,吃东西都要多少带点辣的,在这个变态的广州,他们都不吃辣椒的,要么就是超级