从计算机中数据类型的存储方式,思考理解原码,反码,补码 1. 数据类型 首先,我们知道,在C中,设计了两个类型的数据: 1. 有符号数据类型 2. 无符号数据类型 2. 无符号数据类型 原码,反码,补码 在学习计算机的过程中,很快出现了:原码,反码,补码的概念。这里你肯定不会理解为什么要设计这个玩意 ...
分类:
其他好文 时间:
2019-02-15 19:59:45
阅读次数:
254
1、移位操作符 移位操作符分为左移操作符( ) 对于无符号数:左右位移操作都是逻辑位移 对于有符号数:到底是采用逻辑位移还是算术位移取决于编译器.如果一个出现使用了有符号数的右移操作,它就是不可移植的. 对于左移操作:右边空出来的位数用0补齐. 对于右移操作:如果是逻辑位移,左边移入的位用0填充;如 ...
分类:
其他好文 时间:
2019-02-15 17:45:22
阅读次数:
199
信息的表示和处理 计算机如何表示整数:有符号数和无符号数,尤其是如何用补码表示负数,数字的取值范围。 计算机如何表示浮点数,为什么小数的二进制表示法只能近似表示十进制小数。 数值的转换、移位 这几点非常重要,因为几乎所有的编程语言都有数据类型,而最基本数据类型必然包括整数和浮点数。 搞不清这些表示和 ...
分类:
其他好文 时间:
2019-01-25 11:44:18
阅读次数:
191
位运算总共分 5 种,与、或、异或、左移、右移 左移运算符 m << n,将m 左移n位。左移n位的时候,最左边的位将被丢弃,同时在最右边补上n个0. 比如: 00001010 << 2 = 00101000 10001010 << 3 = 01010000 右移运算符 m >> n,将m 右移n位 ...
分类:
其他好文 时间:
2019-01-23 20:32:16
阅读次数:
206
INCR INCR key 将 key 中储存的数字值增一。 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 本操作的值限制在 64 位(bit)有符号数字表示之内。 这是一个针对字 ...
分类:
其他好文 时间:
2019-01-03 20:41:42
阅读次数:
322
前面二进制加法运算,我们并没有提操作数是有符号数,还是无符号数。其实前面的二进制加法对于有符号数和无符号数都成立。比如前面的8位二进制加法运算,第一张图我们选radix是unsigned,表示无符号加法,第二张图我们选radix是decimal,表示有符号数,从图中可知结果都是正确的。对于有符号数来... ...
分类:
其他好文 时间:
2018-12-08 11:27:34
阅读次数:
245
下面这个代码迷惑我一天,从早晨起来写到中午才写出来,首先介绍本题的需求 你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来 ...
分类:
其他好文 时间:
2018-11-27 01:42:43
阅读次数:
243
1.原码 原码就是早期用来表示数字的一种方式: 一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码 举例说明: int类型的 3 的原码是 11B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得: 00000000 00000000 ...
分类:
其他好文 时间:
2018-11-18 19:36:16
阅读次数:
230
因为cmp指令可以同时进行两种比较,无符号数比较和有符号数比较,所以根据cmp指令的比较结果进行转移的指令也分为两种,即根据无符号数的比较结果进行转移的条件转移指令(它们检测zf、cf的值)和根据有符号数的比较结果进行转移的条件转移指令(它们检测sf、of和zf的值)。 下面是常用的根据无符号数的比 ...
分类:
其他好文 时间:
2018-11-12 13:23:26
阅读次数:
189
上一周遗留问题的解决 问题:原码、反码、补码是只针对有符号数吗?无符号数有没有这三种编码方式? 得到的答案:对于无符号数,原码、反码和补码是一致的 进一步,由于有符号数是以补码的形式存储在计算机中的,而无符号数三种编码都是一致的,所以我们可以说,整型数在计算机中是以补码的形式存在的。 参考文章: h ...
分类:
其他好文 时间:
2018-10-28 20:52:20
阅读次数:
272