| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 439 人关注过本帖
标题:关于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
快速回复:关于C#中位运算的一个问题
数据加载中...
 
   



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

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