zoukankan      html  css  js  c++  java
  • 二进制转成十六进制

    二进制转成十六进制

    1.基本原理:由于十六进制数基数是2的四次幂,所以一个二进制转换为十六进制,如果是整数,只要从它的低位到高位每4位组成一组,然后将每组二进制数所对应的数用十六进制表示出来。如果有小数部分,则从小数点开始,分别向左右两边按照述方法进行分组计算。

    (11010111100010111)2 = (3AF17)16

    原文:

    http://www.chinatax.gov.cn/jypx/jsjjczs/zp_2to16.htm

    2.二进制与十六进制的关系

    2进制 0000 0001 0010 0011 0100 0101 0110 0111

    16进制 0 1 2 3 4 5 6 7

    2进制 1000 1001 1010 1011 1100 1101 1110 1111

    16进制 8 9 a(10) b(11) c(12) d(13) e(14) f(15)

    可以用四位数的二进制数来代表一个16进制,如(3A)16 转为二进制为:

    3为0011A 1010,合并起来为00111010。可以将最左边的0去掉得(111010)2

    右要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,将各单位对照出16进制的值即可。

    3.示例1

    FILE *dest = fopen("aa.txt", "r+"); //写入16进制的文件

    FILE *src = fopen("a.cpp", "r");    //读入的文件

    while( (ch = getc(src) ) != EOF )

    {

    fprintf(dest, "%2x", ch);

    }

    4.示例2

    char* bin2hex(char *src, unsigned int size)

    {

    char dest[100] = {0};

    if(sizeof(dest)/2 < size)

    {

    size = sizeof(dest)/2;

    }

    for(int i = 0; i < size; i++)

    {

    sprintf(&dest[i*2], "%2x", (unsigned char)src[i]);

    }

    return dest;

    }

    原文:

    http://zhidao.baidu.com/question/185562563.html

    更为详细的介绍

    http://www.cnblogs.com/lds85930/archive/2007/09/19/897912.html

    http://bbs.csdn.net/topics/270017393

  • 相关阅读:
    内存
    jmeter设置全局变量
    tomcat(1)
    JVM(一)
    内存溢出
    消息中间件
    上下文切换(二)
    平均负载(二)
    requests模块
    Pycharm如何配置Git
  • 原文地址:https://www.cnblogs.com/mydomain/p/2765113.html
Copyright © 2011-2022 走看看