1 / 2
文档名称:

二进制十进制十六进制.doc

格式:doc   大小:21KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

二进制十进制十六进制.doc

上传人:szh187166 2019/10/12 文件大小:21 KB

下载得到文件列表

二进制十进制十六进制.doc

文档介绍

文档介绍:十六进制、二进制及十进制数的区别使用理解十六进制      二进制0x01        000000010x02        000000100x04        000001000x08        000010000x10        000100000x20        001000000x40        010000000x80        10000000没什么特别的东西,就是两个字:整齐,二进制表示太长了,还难得搞清各位是零还是一十六进制十进制0x04000000 671088640x08000000 1342177280x10000000 2684354560x20000000 5368709120x40000000 **********x80000000 2147483648十进制你一看是个莫名其妙的数,十六进制你一看就清楚2进制是啥,哪一位为1哪一位为0,方便按位操作,比如 |, &位运算和16进制(其他数制也一样)没关系的。一个数据用16进制表示还是10进制表示,不影响它的值。如果一个数:num如果某一位为1,比如第3位,那么(num&00000100)就为1,否则为0所以可以用这个“按位与”运算来判断某一位是否为1。比如一个数 #define MASK 3967这样写,读程序的人一头雾水,需要打开计算器看是个什么如果这么些 #define MASK 0x0F7F那么读者很容易明白倒数第8个字符为0,其余除了高四位都为1,不用打开计算器看了,二进制的话太长,而且还要数,十六进制不用数,一个字符就是4个二进制位再看下面的宏:#defineSDL_INIT_TIMER0x00000001#defineSDL_INIT_AUDIO0x00000010#defineSDL_INIT_VIDEO0x00000020#defineSDL_INIT_CDROM0x00000100#defineSDL_INIT_JOYSTICK0x00000200#defineSDL_INIT_NOPARACHUTE0x00100000/**<Don'tcatchfatalsignals*/#defineSDL_INIT_EVENTTHREAD0x01000000/**<NotsupportedonallOS's*/#defineSDL_INIT_EVERYTHING0x0000FFFF16进制比较方便转换成二进制、因为c语言非常多的数据运行需要使用位运算、位运算就必然就是要转化成二进制了、那么为什么不直接用二进制呢、估计原因是二进制书写太容易出错了、而且又长、按十六进制和二进制来说、可以一一按位转换、其中十六进制最经常用的一种场景便是表示状态、比如以上有八种属性、如果迩使用8个int、每个int表示一种状态、那又太浪费了、在32位的机器上一个int可是32位啊、每种状态无非就是开和关、何必呢!1位足以、不是0就是1、如果迩使用bool来表示、虽然是一位、不过判断起来又过于烦琐、当莪想知道整体8种属性哪些开了哪些关了、得一个一个的去条件if来检测、未免太繁琐了、如果是只存储一个数字里面、用二进制表示、不是一目了然了么、如00110111如果例子的属性和上面的例子从左到右对应的话、只要查看这个状态值的二进制表示就一目了然了、这里把SDL_INI