精华内容
下载资源
问答
  • 涉及到的进制主要是 十进制,十六进制二进制中间的转换。这里整理一下。具体的计划为:封装一个转换类,一个测试类。1、十进制 转 十六进制 二进制://调用java自带的api//测试十进制转16进制 2进制System.out....

    2014-05-06 17:34 吴文付

    最近由于工作上的需要,遇到进制转换的问题。涉及到的进制主要是 十进制,十六进制,二进制中间的转换。

    这里整理一下。具体的计划为:封装一个转换类,一个测试类。

    1、十进制 转 十六进制 二进制:

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    //调用java自带的api//测试十进制转16进制 2进制

    System.out.println("十进制10转16进制为"+Integer.toHexString(10));

    System.out.println("十进制10转二进制为"+Integer.toBinaryString(10));

    十进制转换二进制十六进制

    2、十进制字符串转 16进制 转 2进制

    将字符串转为 十进制后参考方法1

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    System.out.println("字符串10转16进制为"+Integer.toHexString(Integer.parseInt("10")));

    System.out.println("字符串10转二进制为"+Integer.toBinaryString(Integer.parseInt("10")));

    十进制字符串转16转2

    3、16转2转10

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    String h = "10000";

    BigInteger srch= new BigInteger(h, 16);

    System.out.println("十六进制字符串10000转为10进制后为:"+srch.toString());//转换为10进制并输出结果

    System.out.println("十六进制字符串10000转为2进制后为"+Integer.toBinaryString(Integer.parseInt(srch.toString())));

    十六转2转10

    2014-05-07 15:18 修正:

    上面的转换使用了BigInteger对象,也可以不使用。

    如下方式也可以

    16-》2

    可以如下:Integer.toBinaryString(Integer.parseInt("0xAA",16))

    16-10:

    Integer.parseInt("0xAA",16)

    4、2转10转16

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    String b = "10000";

    BigInteger srcb= new BigInteger(b,2);//转换为BigInteger类型

    System.out.println("二进制字符串10000转为10进制后为:"+srcb);//转换为10进制并输出结果

    System.out.println("二进制字符串10000转为16进制后为"+Integer.toHexString(Integer.parseInt(srcb.toString())));

    2转10转16

    5、字节数组转 16进制字符串

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    public static String BinaryToHexString(byte[] bytes){

    String hexStr= "0123456789ABCDEF";

    String result= "";

    String hex= "";for(int i=0;i

    hex = String.valueOf(hexStr.charAt((bytes[i]&0xF0)>>4));//字节低4位

    hex += String.valueOf(hexStr.charAt(bytes[i]&0x0F));

    result+=hex+" "; //这里可以去掉空格,或者添加0x标识符。

    }returnresult;

    }

    byte[] 转16字符串

    6、16进制字符串转 字节数组

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    public static byte[] HexStrToBytes(String str)

    {//如果字符串长度不为偶数,则追加0

    if(str.length() % 2 !=0){

    str= "0"+str;

    }byte[] b = new byte[str.length() / 2];bytec1, c2;for (int y = 0, x = 0; x < str.length(); ++y, ++x)

    {

    c1= (byte)str.charAt(x);if (c1 > 0x60) c1 -= 0x57;else if (c1 > 0x40) c1 -= 0x37;else c1 -= 0x30;

    c2= (byte)str.charAt(++x);if (c2 > 0x60) c2 -= 0x57;else if (c2 > 0x40) c2 -= 0x37;else c2 -= 0x30;

    b[y]= (byte)((c1 << 4) +c2);

    }returnb;

    }

    16字符串转字节数组

    2014-05-06 18:49 完成测试。

    直接上代码吧。注释已经很清楚了

    工程地址:http://download.csdn.net/detail/douniwan123654/7305195

    测试后截图:

    393e90fe3e52d43eeb8d9350296ff8ef.png

    展开全文
  • 十进制整数转换二进制采用“除2倒取余”,十进制小数转换二进制小数采用“乘2取整”。 例题: 135D = __ B 解析:如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 ...

    1.十进制转R进制

    1.1 十进制转二进制

    十进制整数转二进制

    十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。

    例题: 135D = ______ B

    **解析:**如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 0111B.
    这里写图片描述

    图1.十进制整数转二进制

    十进制小数转二进制

    十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。

    具体做法是:

    用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

    然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

    例题: 0.68D = ______ B(精确到小数点后5位)

    **解析:**如下图所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到达到题目要求精度。得到结果:0.10101B.

    在这里插入图片描述

    图2.十进制小数转二进制

    1.2 十进制转八进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 10.68D = ______ Q(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以8取余数,直到无法整除。小数部分0.68乘以8,取整,然后再将小数乘以8,取整,直到达到题目要求精度。得到结果:12.534Q.

    这里写图片描述

    图3.十进制转八进制

    1.3 十进制转十六进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 25.68D = ______ H(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以16取余数,直到无法整除。小数部分0.68乘以16,取整,然后再将小数乘以16,取整,直到达到题目要求精度。得到结果:19.ae1H.

    这里写图片描述

    图4.十进制转十六进制
    # 2.R进制转十进制 ## 2.1 二进制转十进制 **方法为:**把二进制数按权展开、相加即得十进制数。(具体用法如下图)

    例题: 1001 0110B = ______ D

    **解析:**如下图所示。得到结果:150D.

    这里写图片描述

    图5.二进制转十进制

    2.2 八进制转十进制

    八进制转十进制的方法和二进制转十进制一样。

    例题: 26Q = ______ D

    **解析:**如下图所示。得到结果:22D.

    这里写图片描述

    图6.八进制转十进制

    2.3 十六进制转十进制

    例题: 23daH = ______ D

    **解析:**如下图所示。得到结果:9178D.

    这里写图片描述

    图7.十六进制转十进制

    3.二进制转八进制

    二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。

    例题: 1010 0100B = ____Q

    **解析:**计算过程如下图所示。得到结果:244Q.

    这里写图片描述

    图8.二进制转八进制

    4.二进制转十六进制

    二进制转换成八进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。

    例题: 1010 0100B = ____H

    **解析:**计算过程如下图所示。得到结果:a4H.

    这里写图片描述

    图9.二进制转十六进制

    5.工欲善其事,必先利其器

    下面的表格是8位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用:

    1 1 1 1 1 1 1 1 B
    128 64 32 16 8 4 2 1 D

    注:B:二进制
           D:十进制


    例题: 135D = ______ B

    **解析:**有了上面二进制对应十进制数值的表格,我们就可以将题目给的十进制135拆分为:128+7,再从表格中找到对应的数值,拼凑即可得到答案。
    135D = 128D + 7D = 1000 0111B

    展开全文
  • // 每4个二进制数为一组进行计算 for (int i = 0; i ; i++) { int num = 0; // 将4个二进制数转成整数 for (int j = i * 4; j * 4 + 4; j++) { num ;// 左移 num |= (binary.charAt(j) - '0');// 或运算 } // 直接...

    public class Test {

    public static void main(String[] args) {

    String hex = "abef";

    int i = Integer.parseInt(hex, 16);

    System.out.println(hex);

    String str = b2h(Integer.toBinaryString(i));

    System.out.println(str);

    }

    static String[] hexStr = { "0", "1", "2", "3", "4", "5", "6", "7", "8",

    "9", "A", "B", "C", "D", "E", "F" };

    public static String b2h(String binary) {

    // 这里还可以做些判断,比如传进来的数字是否都是0和1

    System.out.println(binary);

    int length = binary.length();

    int temp = length % 4;

    // 每四位2进制数字对应一位16进制数字

    // 补足4位

    if (temp != 0) {

    for (int i = 0; i < 4 - temp; i++) {

    binary = "0" + binary;

    }

    }

    // 重新计算长度

    length = binary.length();

    StringBuilder sb = new StringBuilder();

    // 每4个二进制数为一组进行计算

    for (int i = 0; i < length / 4; i++) {

    int num = 0;

    // 将4个二进制数转成整数

    for (int j = i * 4; j < i * 4 + 4; j++) {

    num <<= 1;// 左移

    num |= (binary.charAt(j) - '0');// 或运算

    }

    // 直接找到该整数对应的16进制,这里不用switch来做

    sb.append(hexStr[num]);

    // 这里如果要用switch case来做,大概是这个样子

    // switch(num){

    // case 0:

    // sb.append('0');

    // break;

    // case 1:

    // ...

    // case 15:

    // sb.append('F');

    // break;

    // }

    }

    return sb.toString();

    }

    }

    展开全文
  • Java 中二进制转换十六进制的两种实现方法每个字节转成16进制,方法1/*** 每个字节转成16进制,方法1** @param result*/private static String toHex(byte[] result) {StringBuffer sb = new StringBuffer(result....

    Java 中二进制转换成十六进制的两种实现方法

    每个字节转成16进制,方法1

    /**

    * 每个字节转成16进制,方法1

    *

    * @param result

    */

    private static String toHex(byte[] result) {

    StringBuffer sb = new StringBuffer(result.length * 2);

    for (int i = 0; i < result.length; i++) {

    sb.append(Character.forDigit((result[i] & 240) >> 4, 16));

    sb.append(Character.forDigit(result[i] & 15, 16));

    }

    return sb.toString();

    }

    每个字节转成16进制,方法2

    /**

    * 每个字节转成16进制,方法2

    *

    * @param result

    * @return

    */

    private static String toHex2(byte[] result) {

    StringBuffer sb = new StringBuffer(result.length * 2);

    for (int i = 0; i < result.length; i++) {

    int hight = ((result[i] >> 4) & 0x0f);

    int low = result[i] & 0x0f;

    sb.append(hight > 9 ? (char) ((hight - 10) + 'a')

    : (char) (hight + '0'));

    sb.append(low > 9 ? (char) ((low - 10) + 'a') : (char) (low + '0'));

    }

    return sb.toString();

    }

    感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    展开全文
  • 十六进制优势所在:1 与二进制转换方便,记住:8、4、2、1. "8421"2 数字长度比二进制短,与10进制相当。实际上在计算机内部使用的数字只有2进制的,也就是说只有0和1两个数字而已。 而16进制是计算机使用人员为了更好...
  • 进制转换二进制、八进制、十六进制、十进制之间的转换 不同进制之间的转换在编程中经常会用到,尤其是C语言。 将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是...
  • JS二进制和十六进制转换一、十进制与二进制、八进制、十六进制转换1、 十进制转二进制2、 十进制转八进制3、 十进制转十六进制二、二进制、八进制、十六进制与十进制转换1、 二进制转十进制2、 八进制转十进制3、 ...
  • 二进制转换十六进制 /** * @description 将二进制转换成16进制 * * @param buf * @return */ public static String parseByte2HexStr(byte buf[]) { StringBuffer sb = new StringBuffer(); ...
  • 进制转换十六进制,也就是 采用 除k取余法 ,直接让10处以16,再对 数据如果小于10和大于10进行处理,代码如下: #include<iostream> #include<string> using namespace std; int main() { ...
  • 二进制、十进制、十六进制、C51十六进制转换器,还有ASCII代码表,单个字符转换。
  • 二进制 八进制 十进制 十六进制 之间的数据转换 上篇讲了二进制与十进制之间的转换,这是二进制算法思想的基础之一。二进制转十进制心算大法​mp.weixin.qq.com下面继续讲关于二进制十六进制间的转换。本系列文章...
  • Java开发中经常需要用到进制转换,例如十进制转二进制二进制转十进制,十六进制二进制十六进制转十进制,八进制转二进制等等,下面来看一些Java进制转换示例吧!16进制转10进制inthex2dec=Integer.parseInt("0...
  • 一、十进制转换二进制 除2取余倒记法:用2连续去除十...二、十进制转换十六进制 常用数制对照表如下 十进制转换为二进制时,除数为2,转换十进制时,除数为16,例如: 十进制整数239对应的十六进制数为(EF)16 ...
  • 将十进制转换二进制十六进制

    千次阅读 2017-03-01 18:46:58
    将十进制转换二进制十六进制将十进制转换二进制十六进制
  • 二进制十六进制进制转换十六进制数转换为十进制数,并将十进制数转换为十六进制数 这是一个非常简单的脚本,可将十进制数字转换为十六进制值,并将十六进制值转换为十进制数字。 此示例后面的示例演示了如何将...
  • 因为自带的方法在进行十六进制转为二进制的时候,精度在13位字符后就会出现丢失,为了让精度不丢失就自己根据16进制转换2进制的原理写了两个两个方法 如果长度没有超过13位,可以用parseInt("125adf8",...
  • 文章目录一、总体框架二、二进制、八进制、十六进制转换为十进制2.读入数据总结 一、总体框架 在这里我们要明确进制之间相互转化的关系: 1、二进制、八进制、十六...解:因为是二进制转换为十进制,所以R=2。 (110.
  • 这几天在做一个与PLC交互的系统,PLC会传过来一些指令,这些指令是二进制的格式,要转为4位十进制的指令来读,下面是... * 二进制十六进制方法 * @param bString * @return */ public static String bytes2hex(St
  • 二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。假设当前数字是N进制,那么:对于整数部分,从右往左看,第 i 位的位权等于...
  • :-1]]) # hex2tobin # 十六进制 to 二进制: bin(int(str,16)) def hex2bin(string_num): return dec2bin(hex2dec(string_num.upper())) # bin2hex # 二进制 to 十六进制: hex(int(str,2)) def bin2hex(string_num): ...
  • php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码,需要的朋友可以参考下。
  • 进制转换二进制转八进制,十进制,十六进制二进制转八进制二进制转十进制二进制转十六进制八进制转二进制,十进制,...1:先将二进制转换成十进制 string-->int Convert.ToInt32("1010", 2)//输出: 10 2:再将十进制
  • VC 进制转换代码:包括十进制、十六进制二进制相互转换,把一个数转换成不同的进制,得出不同的数值,这个转换过程支持互逆,也就是支持反向转换,可二进制向十进制转换,也可10进制向2进制转换,互相转换。
  • 二进制转换八进制,从右往左三位一组换算一位。(2的3次方等于8) 例:二进制110 110 100 八进制 6 6 4 八进制转换成二进制,每位八进制数由三位二进制数代替,即可完成转换。...二进制转换十六进制,从右往左...
  • //题目:八进制转换为十进制 #include<stdio.h> #include<math.h> int main() { int i=0,n,tmp,sum=0; scanf("%d",&n); while(n) { tmp=n%10; n=n/10; sum+=tmp*pow(8,i); i++;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,092
精华内容 3,636
关键字:

二进制转换十六进制