计算机组成原理
文章平均质量分 63
ClimberCoding
基础不牢,地动山摇…
展开
-
为什么-128的补码是1000 0000?
转自 这个问题并不是什么面试题,而是今晚刚上大一初学C语言的小辈问我的,一瞬间竟然有点发蒙,不知道该如何回答。好在最后还是理清了思路,顺便将这个非常基础的知识点总结下吧。 我们都知道,表示二进制有符号数有三种方式,即原码、反码和补码,而计算机中一律使用补码进行存储和运算。正数和0的补码与其原码相同,负数的补码则是其对应的反码加1得到。 假设字长为n比特,原码、反码能够表示的有符号数真值范围都是[-2n-1+1,转载 2021-10-15 01:23:29 · 2179 阅读 · 7 评论 -
原码, 反码, 补码 详解
转自本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1、机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.转载 2021-10-15 01:06:13 · 265 阅读 · 0 评论 -
为什么32位的操作系统虚拟地址空间的大小为 2^32 字节,也就是 4G?
1GB = 1024MB = 1024 * 1024KB = 1024 * 1024 * 1024B = 2^10 * 2^10 * 2^10B = 2^30B所以32位的系统是2^32 = 4 * 2^30 = 2^2 * 2^30 = 4 * 1GB原创 2021-10-03 15:19:05 · 1717 阅读 · 0 评论 -
整数在计算机中是如何存储的?
整数在计算机中是如何存储的?无符号整数按其二进制的形式直接存储有符号整数按其补码的形式存储以8位二进制数为例:无符号整数存储范围:0~2^8 - 1 [0, 255]有符号整数存储范围:-2^7 ~ 2^7 - 1 [-128, 127]练习:考虑以下C代码int x = -1;unsigned u = 2147483648;printf("x = %u = %d \n", x, x);printf("u = %u = %d \n", u, u);在32位机器上运行上原创 2021-07-04 19:52:21 · 2969 阅读 · 0 评论 -
关于 -128 ,+128,-0,+0,-1 的反码补码
今天在学习到有关整数的补码时,被 在8进制位中 -128的补码如何表示搞晕,找到了一篇相关的博客,在此转发记录转自:https://www.cnblogs.com/flowerslip/p/5933833.html一.反码的范围反码表示法规定:正数的反码与其原码相同。负数的反码是对其原码逐位取反,但符号位除外。在规定中,8位二进制码能表示的反码范围是-127~127。此时(字长为8位), -128没有原码和反码(只有补码)。那么,为什么规定字长8位时-128没有原码和反码呢?下面解释。首先看转载 2021-07-04 16:06:12 · 4942 阅读 · 4 评论