一个程序中~a以后,会得到一个负数(a是正数),为什么啊?“~”这个符号是干嘛用的啊?
是负数没错,但不应该是-7应该是-1才对啊!
~在C#中什么意思
答案:4 悬赏:60
解决时间 2021-02-27 06:55
- 提问者网友:无依无靠的距离
- 2021-02-26 15:38
最佳答案
- 二级知识专家网友:开心就好
- 2021-02-26 17:14
按位取反
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)
总之这个操作要根据对象具体分析。如果是浮点数更复杂。
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)
总之这个操作要根据对象具体分析。如果是浮点数更复杂。
全部回答
- 1楼网友:何必打扰
- 2021-02-26 19:24
位逻辑非运算
位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1;如果某一位等于1,就将其转变为0。
比如,对二进制的10010001进行位逻辑非运算,结果等于0110@是取消字符串中的转意符。比如不加@的字符串,"\\a\n"c#会解释成一个\和一个a再加一个换行,如果加了@,@"\\a\n“ c#会解释成两个\加一个a加一个\加一个n
- 2楼网友:荒唐后生
- 2021-02-26 18:43
server.mappath(~);
这句话的意思就是回到该项目的根目录
- 3楼网友:气场征服一切
- 2021-02-26 17:41
析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
析构函数名也应与类名相同,只是在函数名前面加一个波浪符~,例如~stud( ),以区别于构造函数。它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数,它也不进行任何操作。所以许多简单的类中没有用显式的析构函数。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯