滴水逆向联盟
标题: 整数在内存中的储存形式 [打印本页]
作者: 夺命书生 时间: 2014-11-21 08:37
标题: 整数在内存中的储存形式
本帖最后由 夺命书生 于 2014-11-21 08:41 编辑
储存单位
每个二进制位中存放 0 或 1 因此成为二进制位。
大多数计算机把8个二进制位组成一个 字节 (byte)
- 如果一台计算机系统以两个字节(16个二进制位)来储存一条机器指令
就称这台计算机字长为 16 位。
若是整数最高位是 0 ,负数为 1
存储方式
1.正整数:用两个字节存放的最大正数 32768 在内存中为 0111111111111111
第一个 0 是符号位,表示是正整数,二进制中的最大数为 1 ,除了符号
位,其余的都是 1 ,就表示了16个二进制位(2字节)可以存放的最大数。
相反,最小的正整数则全部为 0000000000000000
2.负整数:在内存中是以正数的补码形式存放的。
两个字节存放的最小整数是 -32768,在内存中的存储形式为:1000000000000000
例如:例如从一个10进制正整数运算出,-10 二进制的补码形式。
1. 把十进制的 5 用一个字节表示二进制数为:00000101
2. 求 5 的反码,把其各位取反
原码:00000101
反码:11111010
3. 求 5 的补码最低位加 1
反码:11111010
+ 1
----------------------------
补码: 11111011
答案:5的二进制表示是:00000101,-5的二进制表示方法是:11111011
作者: 树袋老妖 时间: 2015-1-22 09:54
这个不错, 学习学习
欢迎光临 滴水逆向联盟 (http://dtdebug.com/) |
Powered by Discuz! X3.2 |