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

    一个十六进制字节,比如: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。
 
 

十六进制字节 & 十六进制转二进制的更多相关文章

  1. 怎么把一个整数转化为3个十六进制字节 delphi

    如何把一个整数转化为3个十六进制字节 delphi比如把整数149259(都是6位数据整型数) 转换为十六进制为2470B然后再分开为三个字节02 47 0B,求实现代码示例var ID: Integ ...

  2. JAVA 十六进制和十进制、二进制转换

    java十六进制和十进制.二进制转换 十进制转化成十六进制 Integer x = 100; hex = x.toHexString(x); 十六进制转化成十进制 Integer.parseInt(h ...

  3. C# 判断字符串是否符合十六进制,八进制,二进制和十进制整数格式的正则表达式

    /// <summary> /// 判断是否十六进制格式字符串 /// </summary> /// <param name="str">< ...

  4. C++二进制字符串转十六进制字符串 十六进制字符串转二进制字符串

    ============================================== 二进制转十六进制 ============================================ ...

  5. java 十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制

    //10进制转16进制 Integer.toHexString(20); //10进制转2进制 Integer.toBinaryString(10); //16进制转10进制 Integer.pars ...

  6. delphi如何把一个整数转化为4个十六进制字节

    var   s:string;   len:Integer;   AData:TBytes; begin        s:=IntToHex(149259,6);//返回6位字符串     len  ...

  7. 字节(byte)、二进制、字节流、字符流相关概念分析

    https://blog.csdn.net/changwilling/article/details/52065955 1.字节: 字(Byte)节是长度单位.位(bit)也是长度单位. 因为计算机通 ...

  8. [转载] C++位运算:将一个4字节整数的二进制表示中的001替换为011

    #include <iostream> #include <assert.h> /** * Key: * * get someone bit: num & (mode1 ...

  9. Java中二进制字节与十六进制互转

    在Java中字节与十六进制的相互转换主要思想有两点: 1.二进制字节转十六进制时,将字节高位与0xF0做"&"操作,然后再左移4位,得到字节高位的十六进制A;将字节低位与0 ...

随机推荐

  1. 【转】XML之命名空间的作用(xmlns)

    原文链接:http://blog.csdn.net/zhch152/article/details/8191377 命名空间的作用,下面的内容是转载的,大家可以看看:   问题的出现:XML的元素名字 ...

  2. EntityFramwork6连接MySql错误

    EntityFramwork6连接MySql错误 使用EF6连接MySql产生Exception: ProHub.ssdl(2,2) : 错误 0152: MySql.Data.MySqlClient ...

  3. binarySearch二分查找——Javascript实现

    在很早之前,我就写过了一篇也关于二分法的相关博文:JavaScript快排与原生sort的测试.当时是用二分法进行快速排序,其实和这次思路大致相当.二分查找最重要的一个条件,就是需要将数组先按照从小到 ...

  4. Light oj 1005 - Rooks (找规律)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1005 纸上画一下,找了一下规律,Ank*Cnk. //#pragma comm ...

  5. 计算直线的交点数(hdu1466简单的dp)

    题意:平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数.比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行). 思路:动态规划,想办法记忆化搜索,当前状态和之前状态结合起来 d ...

  6. jsp转发action的问题找不到acton

    -----------------------------jsp转发action的问题找不到acton------------------------------------------- jsp: ...

  7. lua安装和简单使用

    1.安装 下载地址:https://www.lua.org/download.html 编译之前要安装readline,直接用yum安装 yum -y install readline-devel n ...

  8. android AChartEngine图标引擎

    AChartEngine 1.在androi开发中的时候很多时候是要用图表将数据直观的显示出来的,这里就要用到AChartEngine. XMultipleSeriesRenderer 是经常要用到的 ...

  9. UDP套接口编程

    常用的UDP实现的程序:DNS域名系统,NFS网络文件系统,SNMP简单网络管理协议 ssize_t recvfrom(int sockfd,void *buff,size_t nbytes,int ...

  10. xampp 修改mysql 密码

    编辑 lampp/etc/extral/httpd-xampp.conf 文件注释掉 连上mysql,修改mysql下root 用户的登入密码为123456,执行 UPDATE user SET pa ...