标题:关于C#中位运算的一个问题
只看楼主
不打DOTA
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-9-10
 问题点数:0 回复次数:4 
关于C#中位运算的一个问题
     ushort a=10;
   console.writeline(~a);
为什么结果是-11;
求高手解释  本人新手刚入门
2011-09-10 11:42
LennyMogwai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:15
注 册:2011-7-24
得分:0 
ushort a=10,
ushort是16位,所以存储为 0000 0000 0000 1010
~a,
按位取反,现在存储为1111 1111 1111 0101

这个就是-11的补码嘛,所以输出是-11啦……

补码你知道吧?绝对值的按位取反再加1……
2011-09-10 12:47
abanden22
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2011-6-21
得分:0 
学习
2011-09-10 18:17
LennyMogwai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:15
注 册:2011-7-24
得分:0 
补充一下,负数的补码才是绝对值按位取反再加一,正数的补码就是原码……
2011-09-10 19:23
不打DOTA
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-9-10
得分:0 
回复 楼主 不打DOTA
懂了 谢谢
2011-09-10 21:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-349641-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049343 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved