社区
C语言
帖子详情
~按位取反问题
flyingdelphin
2006-02-11 01:00:03
我用VC++编译器,计算~10,得出的结果是-11。为什么不是5呢
10的二进制表示为1010,按位取反应该为0101,也就是十进制的5,为什么会得出-11?
请指教!
...全文
1720
5
打赏
收藏
~按位取反问题
我用VC++编译器,计算~10,得出的结果是-11。为什么不是5呢 10的二进制表示为1010,按位取反应该为0101,也就是十进制的5,为什么会得出-11? 请指教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liangqiushi
2006-03-18
打赏
举报
回复
高手!!
leisureftso
2006-02-11
打赏
举报
回复
负数是按补码的形式存放在内存中的
flyingdelphin
2006-02-11
打赏
举报
回复
谢谢,不过
11111111 11111111 11111111 11110101 = -11
看不太明白,-11的二进制表示是怎样的呢?
lyff8neo
2006-02-11
打赏
举报
回复
学习小知识,上面地是对地。
digifish
2006-02-11
打赏
举报
回复
VC是32位编译器,所以
10(10进制) = 00000000 00000000 00000000 00001010 (2进制)
~10 = 11111111 11111111 11111111 11110101 = -11
javascript中的
取反
再
取反
~~没有意义
操作符~, 是
按位
取反
的意思,表面上~~(
取反
再
取反
)没有意义,实际上在JS中可以将浮点数变成整数。 代码如下: <html> [removed] var myArray = new Array(); myArray.push(“a”); myArray.push(“b”); myArray.push(“c”); myArray.push(“d”); //现在要随机从数组中取出一个元素 var random = myArray[~~(Math.random()*myArray.length)]; //Math.random()返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1) var
C语言位运算符:与、或、异或、
取反
、左移与右移详细介绍
位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的
问题
。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。 C语言提供的位运算符列表:运算符 含义 描述&
按位
与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0|
按位
或 两个相应的二进制位中只要有一个为1,该位的结果值为1^
按位
异或 若参加运算的两个二进制位值相同则为0,否则为1~
取反
~是一元运算符,用来对一个二进制数
按位
取反
,即将0变1,将1变0<< 左移 用来将一个数的各二进制位全部左移N位,右补0>> 右移 将一个数的各二进
~
按位
取反
运算
(
按位
取反
)运算的理解: 按照我平时的理解,当我使用
按位
取反
运算的时候,计算机会将操作数所对应的二进制表达式的每一个位进行
取反
计算,
取反
后所得到的值就是
按位
取反
的运算结果(这点没
问题
) 例如,假如我的计算机是32位的,我接下来要计算~5的值,计算过程如下: 5 的二进制表达式为:0000 0000 0000 0000 0000 0000 0000 0101 执行运算,即5后: 1111 1111 1111 1111 1111 1111 1111 1010,即结果为-6 以上过程没有任何
问题
,但我们如果忘记了
(
按位
取反
)运算的理解
(
按位
取反
)运算的理解: 按照我平时的理解,当我使用~
按位
取反
运算的时候,计算机会将操作数所对应的二进制表达式的每一个位进行
取反
计算,
取反
后所得到的值就是~
按位
取反
的运算结果(这点没
问题
) 例如,假如我的计算机是32位的,我接下来要计算~5的值,计算过程如下: 5 的二进制表达式为:0000 0000 0000 0000 0000 0000 0000 0101 执行~运算,即~5后: 11...
python
按位
取反
(~)
Python中的~(
按位
取反
)运算的理解: 按照我平时的理解,当我使用~
按位
取反
运算的时候,计算机会将操作数所对应的二进制表达式的每一个位进行
取反
计算,
取反
后所得到的值就是~
按位
取反
的运算结果(这点没
问题
) 例如,假如我的计算机是32位的,我接下来要计算~5的值,计算过程如下: 5 的二进制表达式为:0000 0000 0000 0000 0000 0000 0000 0101 执行~运算...
C语言
69,387
社区成员
243,075
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章