~在C#中什么意思

一个程序中~a以后,会得到一个负数(a是正数),为什么啊?“~”这个符号是干嘛用的啊?是负数没错,但不应该是-7应该是-1才对啊!... 一个程序中~a以后,会得到一个负数(a是正数),为什么啊?“~”这个符号是干嘛用的啊?
是负数没错,但不应该是-7应该是-1才对啊!
展开
 我来答
雅啊黑12
推荐于2018-02-27 · TA获得超过3312个赞
知道小有建树答主
回答量:727
采纳率:0%
帮助的人:490万
展开全部
按位取反

10 00 01 10

取反后为

01 11 10 01

-----------------华丽丽的补充答案分割线----------

看来得详细给你分析一下数字的机内表示和机内存储方式。
你最好把你那个a的具体值是多少、类型是什么说一下。

对于最常见的32位有符号整型数,机内长度应该为4个Byte32位,且最高位表示符号为,0为正,1为负,因此1230应该表示为:

0000 0000 0000 0000 0000 0100 1100 1110

方便起见一半用十六进制表示

0x00 00 04 CE

按位取反后成为:

1111 1111 1111 1111 1111 1011 0011 0001 : 0xFFFFFB31

并不是-1230,而是-2147482417

如果是uint_8,即无符号8位整型:

00 00 10 00 (8)

按位取反后成为:

11 11 01 11( 247 而不是-8)

总之这个操作要根据对象具体分析。如果是浮点数更复杂。
uestc_lijin
2010-01-16 · 超过25用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:68.8万
展开全部
位逻辑非运算

位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1;如果某一位等于1,就将其转变为0。

比如,对二进制的10010001进行位逻辑非运算,结果等于01101110,用十进制表示就是:

~145等于110;对二进制的01010101进行位逻辑非运算,结果等于10101010。用十进制表示就是~85等于176。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baixuguang1
2015-09-11 · 超过65用户采纳过TA的回答
知道小有建树答主
回答量:110
采纳率:100%
帮助的人:60.1万
展开全部
server.mappath(~);

这句话的意思就是回到该项目的根目录
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yinheheidou
2010-01-16 · 贡献了超过105个回答
知道答主
回答量:105
采纳率:0%
帮助的人:0
展开全部
a=6应该是 a=0000 0110

取反应该是 ~a=1111 1001
那也应该不是-7啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiangjuan314
2016-01-05 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2829万
展开全部
析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。

析构函数名也应与类名相同,只是在函数名前面加一个波浪符~,例如~stud( ),以区别于构造函数。它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数,它也不进行任何操作。所以许多简单的类中没有用显式的析构函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式