为什么需要八进制和十六进制? 十六进制的意义何在?
来源:互联网 发布:淘宝上买炉石卡包 编辑:程序博客网 时间:2024/05/17 22:04
编程中,我们常用的还是10进制.毕竟C/C++是高级语言。
比如:int a = 100,b = 99;
不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决 问题。但二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:
0000 0000 0000 0000 0110 0100
面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。
不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢?2、8、16,分别是2的1次方,3次方,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。
十六进制的意义:
1.用于计算机领域的一种重要的数制
2.对计算机理论的描述,计算机硬件电路的设计都是很有益的。比如逻辑电路设计中,既要考虑功能的完备,还要考虑用尽可能少的硬件,十六进制就能起到一些理论分析的作用。比如四位二进制电路,最多就是十六种状态,也就是一种十六进制形式,只有这十六种状态都被用上了或者尽可能多的被用上,硬件资源才发挥了尽可能大的作用。
3.十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数。
十六进制的表示:
C语言、Shell、Python语言及其他相近的语言使用字首“0x”,例如“0x5A3”。开头的“0”令解析器更易辨认数,而“x”则代表十六进制(就如“O”代表八进制)。在“0x”中的“x”可以大写或小写。
然后再说内存:
一个内存地址存着一个对应的值, 内存就相当于(addr,val)的大hash表,c语句的语义基本就是改变hash值。
如 int i = 3;
假设 i的内存地址为 0x8049320 ,那么这句话的语义是0x8049320 = 3,经过i = 3后,i为(0x8049320,3)
int b = i;
假设 b的内存地址为 0x8049324 ,那么这句话的语义是0x8049324 = i对应的val = 3,此时b为(0x8049324,3)
- 为什么需要八进制和十六进制? 十六进制的意义何在?
- 内存地址空间与十六进制,为什么需要八进制和十六进制? 十六进制的意义何在
- 08 八进制和十六进制
- 二进制 八进制 和十六进制
- 二进制、八进制和十六进制
- 输入八进制和十六进制的数
- 十六进制,八进制和十进制之间的转换
- 关于十六进制和八进制负数的问题
- 八进制数和十六进制数的表示
- 八进制、十六进制
- 十六进制 八进制
- Java键盘输入八进制和十六进制
- 八进制与十六进制的算法
- 八进制和十六进制与二进制的转换及对应字符串
- 二进制,八进制,十六进制和十进制的转换程序
- 二进制,八进制,十进制和十六进制 之间的关系转换
- C/C++二进制,八进制, 十进制和十六进制的表示方法
- c语言二进制八进制和十六进制的总结
- 数据库Sharding的思想和切分策略
- 使用monitools拷贝文件系统
- Linux——文件权限的查询与修改
- 网页调试与发送网页HTTP请求的Chrome插件---Postman
- PHP的session问题
- 为什么需要八进制和十六进制? 十六进制的意义何在?
- 用QML开发Android APP
- WinDebug双机调试
- git maven 常用操作
- 程序员如何变身IT讲师
- Dart的路径操作
- iBatis使用小知识
- string 与char* char[]之间的转换
- VS2010中如何查看DLL的导出接口