• 十六进制字节 & 十六进制转二进制


    做项目也将近一年的时间了。从一开始就经常提到“一个十六进制字节”,然而一开始就是迷惑的,直到现在。

        一个十六进制字节,比如:FF。周围的人经常说这是一个十六进制字节。然后我就想,这不是两个字符吗,分别是F 和F,一个字符是一个字节,两个字符是两个字节,怎么就成一个十六进制字节,就成一个字节了。就是这种想法,整整困扰了我将近一年的时间。

        这几天在写论文,要在数据压缩上找点可写之处,分析数据的组成和格式。结果焦点还是在一个十六进制字节。使用半字节压缩法,很适合项目和论文的需要。而且项目当中就是这样做的。

        经查,一个十六进制字节是这样定义的:char a=0xFF=255.

        又查,一个字节总是由一对十六进制数来表示,上面的a是一个字符,即一个字节;十六进制数F和F组成以一对十六进制数。这对十六进制数转换为二进制数为:11111111,正好是8 bits,一个字节。

    讲讲二进制、字节、16进制 

    1.二进制就是逢二进一,只有0和1。
    一个字节就是一个英文字母、阿拉伯数字或半个汉字所占的空间(一个汉字占2个字节)
    16进制就是逢16进一,只有0123456789abcdef这16个数字(或子母)。
    由于电脑里都是二进制的数,而16进制与二进制有简单的转换关系,所以很多书上都写16进制的数。

    一个字节由8个二进制组成,它所能表示最大十六进制为: ?FF(16进制)=256(10进制)=11111111(2进制)。8位二进制最大为255,转换为16进制则为ff。
     
    2.字节是电脑里用于存储的最小单位..?
    一个字节占用八位的二进制数,及一个字节等于8位二进制。
    所以..二进制是计算机的一种语言.字节是一个单位.所以说:计算机里面存储数据是以字节为单位的,即8个二进制代码。而不是以二进制代码储存的。
    由于二进制数在使用中位数太长,不容易记忆,所以又提出了十六进制数.
     
    3.在最早的时候,是约定的8位二进制为一个字节,和ASCⅡ码无关,可以表示256以内的数。
    在 机器内部,8位或者16位对它来说都一样,都是1或0,而程序设计的时候,人为的要求机器按8位或16位来处理。16位的音乐文件所包含的信息比8位的多 得多(差256倍),因此你也可以将16位二进制数看作音乐文件的一个单元,但约定成2个字节。就相当于统一了单位,便于交流。
     
    4.十六进制转换二进制,举例:
    ?问:十六进制(A5)转换成二进制?
    ??解答:
    ?方法一、A*16的1次方+5*16的0次方得出十进制。然后拿十进制再转二进制,这样的话 比较麻烦。?
    ?方法二、16进制中A用二进制表是多少?A代表10 ,就是二进制的 1010。 我例个表出来。十六进制以 4 位为一小段.8进制以 3 位为一小段
    0 0000
    1 0001
    2 0010
    3 0011
    5 0101
    ...
    9 1001
    A 1010
    B 1011
    C 1100
    ...
    F 1111
    所以A5就是 1010 0101。
    对方法二,进行解释:
    十六进制中的 F 转换成二进制 就是 1111
    所以把十六进制中每个位数上的数单独转换成一个4位的二进制数,再做拼接

    A5
    A --1010
    5 --0101
    所以 A5 -1010 0101。
     
     
  • 相关阅读:
    PIL库,图像处理第三方库
    文件指针
    机器学习之KNN---k最近邻算法-机器学习
    python 中的内置高级函数
    sklearn中standardscaler中fit_transform()和transform()有什么区别,应该怎么使用?
    python中导入sklearn中模块提示ImportError: DLL load failed: 找不到指定的程序。
    pandas中读取文件报错
    beacon帧字段结构最全总结(一)——beacon基本结构
    python中实例方法,类方法,静态方法简单理解
    一种logging封装方法,不会产生重复log
  • 原文地址:https://www.cnblogs.com/Alight/p/4088715.html
Copyright © 2020-2023  润新知