首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++中~符号的有关问题

2012-03-25 
C++中~符号的问题~不是取反吗?在vc中,~0的值为-1,~1的值为-2,~2的值为-3,以此类推。为什么如此呢?如果int是

C++中~符号的问题
~不是取反吗?
在vc中,~0的值为-1,~1的值为-2,~2的值为-3,以此类推。
为什么如此呢?

如果int是16位的那么2 应该是0000 0000 0000 0010取反不是 1111 1111 1111 1101么?

为什么会是如上的值呢?



[解决办法]
二补数 (2's complement) :是一种用二进位表示有号数的方法,也是一种将数字的正负号变号的方式,常在计算机科学中使用。

一个数字的二补数就是将该数字作位元反向运算(即一补数),再将结果加 1,即为该数字的二补数。
在二补数系统中,一个负数就是用其对应正数的二补数来表示。

优点:二补数系统的最大优点是可以在加法或减法处理中,不需因为数字的正负而使用不同的计算方式。
只要一种加法电路就可以处理各种有号数加法,而且减法可以用一 个数加上另一个数的二补数来表示,因此只要有加法电路及二补数电路即可完成各种有号数加法及减法,在电路设计上相当方便。

特点:二补数系统的 0 只有一个表示方式,这点和一补数系统不同(在一补数系统中,0 有二种表示方式),因此在判断数字是否为 0 时,只较比对一个不同的条件即可。
[解决办法]
楼主需要好好学习一下,源码,反码,补码。
[解决办法]

有符号和无符号是不一样的

热点排行