二进制和16进制的知识
来源:互联网 发布:淘宝网购物女装t恤衫 编辑:程序博客网 时间:2024/05/20 22:38
为什么一位十六进制数对应四位二进制数?
就是简单的2^4=16么?总感觉没法理解这个东西。
二进制是满二进一,十六进制是满十六进一,原理跟十进制是相同的;
比如,9=1*2^3+0*2^2+0*2^1+1*2^0=9*16^0
那么二进制写为1001,十六进制写作9
类似的,15=1*2^3+1*2^2+1*2^1+1*2^0=15*16^0
那么二进制写为1111,十六进制写作F
2^4=16,十六进制的一位数需要二进制的四位数才能全部表示
16进制表示范围为0-15
四位2进制数表示的也是0-15
1111 = 15
(16进制,逢16进1)
内存地址是12位16进制数,那么对应的指针需要多少字节?
例如(对变量取址得到的):0x7fff5ced2e5c;
那么就是12个4位的2进制数,就是48位的2进制数,48/8 = 6,那就是6个字节可以表示48位的2进制数。但是我储存一个指针(利用sizeof求得)需要8字节,
那么就是12个4位的2进制数,就是48位的2进制数,48/8 = 6,那就是6个字节可以表示48位的2进制数。但是我储存一个指针(利用sizeof求得)需要8字节,
为什么??
指针是8字节没问题,但另两个字节也是地址的组成部分,并无它用。可以这样想,在windows系统上,如果你对函数临时变量取值,很可能得到0x13ff58这样一个3位16进制数地址,那么剩下5个字节都做其它用了吗?
地址数值只有48位是表像,实际上它是64位的地址,这是当前的x86_64处理器硬件限制所致。因为目前面世的x86_64处理器的地址线只有48条,硬件要求传入的地址的48到63位必须与47位相同。因此有两段合法的地址空间,最直观的是0 - 0x00007fff ffffffff,另一段是0xffff8000 00000000 - 0xffffffff ffffffff。两段加在一起一共2^48 = 256TB,这就是当前处理器的寻址能力。但一般我们是见不到第二段地址的,因为操作系统一般使用低段地址,高段这部分需要你的机器至少有128TB以上的内存。
地址数值只有48位是表像,实际上它是64位的地址,这是当前的x86_64处理器硬件限制所致。因为目前面世的x86_64处理器的地址线只有48条,硬件要求传入的地址的48到63位必须与47位相同。因此有两段合法的地址空间,最直观的是0 - 0x00007fff ffffffff,另一段是0xffff8000 00000000 - 0xffffffff ffffffff。两段加在一起一共2^48 = 256TB,这就是当前处理器的寻址能力。但一般我们是见不到第二段地址的,因为操作系统一般使用低段地址,高段这部分需要你的机器至少有128TB以上的内存。
0 0
- 二进制和16进制的知识
- 二进制的一些知识
- 二进制的一些知识
- 整数的二进制和16进制格式转换
- java_day02_二进制和八进制,16进制的转换
- 二进制和16进制的转化与输出
- 计算机的二进制起源和进制的转换
- Linux下的C语言编程——10进制转16进制和二进制
- 二进制、10进制、16进制整数和字符串转换
- 一些知识概念,十进制、八进制和二进制转换
- 进制转换:二进制和十进制的互转和推广至任意进制
- JAVA实现二进制和16进制之间的互相转换,8进制同理,附带异或操作实现
- 考察二进制知识
- 二进制相关知识
- 二进制编码知识
- 二进制流与16进制字符串的互换
- 二进制 八进制 16进制之间的转换
- 二进制与16进制的对应关系
- java编译期常量 static final
- Comb0 BOX 控件的使用细节说明一
- hadoop rack aweness
- HBase停止集群报错,pid: No such file or directory
- ant -D<property>=<value> value有空格
- 二进制和16进制的知识
- A cycle was detected in the build path of project JAVA多个工程相互引用异常
- logback demo 2
- ELF格式文件详解
- Android绘制光滑曲线教程1
- 1323110810-杜锦华-android作业-listview-adapter的使用
- Linux下运行.sh文件
- js中的getter和setter
- 正则表达式