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

转自:http://www.cnblogs.com/Alight/p/4088715.html

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

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

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

时间: 2024-10-11 04:36:05

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

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

如何把一个整数转化为3个十六进制字节 delphi比如把整数149259(都是6位数据整型数) 转换为十六进制为2470B然后再分开为三个字节02 47 0B,求实现代码示例var ID: Integer; ByteBuf: array[0..2] of Byte;begin ID := 149259; .......... ByteBuf[0] := //02 ByteBuf[1] := //47 ByteBuf[2] := //0Bend;------解决思路----------------

4字节十六进制数据和大小端传输

甲方使用的后台要求“整型数据采用小端传输”,大部分数据是4字节十六进制,有一些是2字节十六进制. 关于大小端传输,简单来说可以这样认为. 内存中低地址存最低有效字节的形式为小端传输 内存中低地址存最高有效字节的形式为大端传输 例如一个4字节十六进制数"0x11223344",装入QByteArray中. 如果取出结果如下 buff[0] == 0x44; buff[1] == 0x33; buff[2] == 0x22; buff[1] == 0x11; 这里的"0"

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

/// <summary> /// 判断是否十六进制格式字符串 /// </summary> /// <param name="str"></param> /// <returns></returns> public bool IsHexadecimal(string str) { const string PATTERN = @"[A-Fa-f0-9]+$"; return System.Te

十六进制字符串转十六进制字节代码

/********************************************************************************* * Copyright: (C) 2016 Guo Wenxue<[email protected]> * All rights reserved. * * Filename: strhex.c * Description: This file used convert HEX string to HEX bytes and wr

以八进制 十六进制(小写) 十六进制(大写)的格式 输出8~15 并输出变量1.23456的变量地址 变量 保留两位小数和默认右对齐

1 # include <stdio.h> 2 3 int main() 4 { 5 unsigned number; 6 double item = 1.23456; 7 8 for (number = 8; number<16; number++) 9 { 10 printf("%o ", number); /* 以八进制格式输出number */ 11 printf("%x ", number); /* 以十六进制格式(小写)输出number

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

#include <iostream> #include <assert.h> /** * Key: * * get someone bit: num & (mode1bit<<N) * * check a few bits: num & (mode3bit<<shift) == What */ int replace(int num) { unsigned int mode3bit = 7; unsigned int mode1bit =

二进制、十进制和十六进制的转换

二进制只使用数字0 和1 ,其中每个数字对应于一位( 二进制位).通常,我们将每4 位或8 位作为一组,分别称它们为半字节(nibble) 和字节. 我们感兴趣的是二进制值对应的十进制值一一十进制以10 为基数,我们从幼儿园起就开始使用 它了.二进制位按从右向左的顺序排列,每向左移动一位,位值就翻一倍. 表2-1 列出了半字节和字节中各位代表的十进制值.别忘了,半字节包含4 位, 字节包含8 位. 这意味着如果某一位的取值为1 ,则计算半字节或字节对应的十进制值时,应将其位值与其他所 有取值为1

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

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

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

二进制值: 半字节中各位的位值               字节中各位的位值 8 4 2 1                            128 64 32 16 8 4 2 1 二进制到十进制转换表: 二进制值                                十进制值 10000000                                128 11000000                                192 11100000