前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >十六进制表示法

十六进制表示法

作者头像
HueiFeng
发布2020-02-21 17:58:23
3.2K0
发布2020-02-21 17:58:23
举报
文章被收录于专栏:HueiFeng技术专栏HueiFeng技术专栏

一个字节由8位组成。在二进制表示法中,他的值域是00000000₂~11111111₂。如果看成十进制整数,他的值域就是0₁₀~255₁₀。两种符号表示法对于描述位模式来说都不是非常方便。二进制表示法太冗长,而十进制表示法与位模式的相互转化很麻烦。替代的方法是以16为基数,或者叫做十六进制(hexadecimal)数,来表示位模式。十六进制(简写为”hex”)使用数字’0’~’9’以及字符以及字符’A’~’F’来表示16个可能的值。如下所示展示了16个十六进制数字对应的十进制值和二进制值。用十六进制书写,一个字节的值域为00₁₆~FF₁₆。

在这里插入图片描述
在这里插入图片描述

在C语言中,以0x或Ox开头的数字常量被认为是十六进制的值。字符’A’~’F’既可以是大写,也可以是小写。例如,我们可以将数字FA1D37B16写作 OxFA1D37B,或者Oxfald37b,甚至是大小写混合,比如,0xFalD37b。 编写机器级程序的一个常见任务就是在位模式的十进制、二进制和十六进制表示之间人工转换。 二进制和十六进制之间的转换比较简单直接,因为可以一次执行一个十六进制数字的转换。 数字的转换可以参考如图, 一个简单的窍门是,记住十六进制 数字A,C和F相应的十进制值。而对于把十六进制值B、D和E转换成十进制值,则可以通过计算它们与前三个值的相对关系来完成。 比如,假设给你一个数字0x173A4C。可以通过展开每个十六进制数字,将它转换为二进制格株式,如下所示: 十六进制 1 7 3 A 4 C 二进制 0001 0111 0011 1010 0100 1100 这样就得到了二进制表示 000101110011101001001100。反过来,如果给定一个二进制数字1111001010110110110011,可以通过首先把它分为每4位一组来转换为十六进制。不过要注意,如果位总数不是4的倍数,最左边的一组可以少于4位,前面用0补足。 然后将每个4位组转换为相应的十六进制数字: 二进制 11 1100 1010 1101 1011 0011 十六进制 3 C A D B 3

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档