中易网

关于C#中的~运算符的疑问

答案:1  悬赏:10  
解决时间 2021-01-13 12:53
  • 提问者网友:半生酒醒
  • 2021-01-12 12:43
关于C#中的~运算符的疑问
最佳答案
  • 二级知识专家网友:青尢
  • 2021-01-12 13:04
60化为二进制是00111100,然后取反为11000011
11000011:-2^7+2^6+2^1+2^0=-61(第一位是符号位)追问这位仁兄,我还有个问题不解,按照你说的,这种按权重相加的方法确实等于-61,那么为什么我把11000011直接用计算器化为10进制是195呢?求解
好像计算器无法表示有符号的二进制数。追答这要看:11000011,你怎么定义它。

如果是补码形式:那么最高位就是负号位,那么最高位的1,转为10进制=-2^7
如果非补码形式:就是无符号形式,那个最高位的1,转为10进制=2^7
而程序中int型,都是带符号位的,也就是补码追问懂了,懂了,非常感谢!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息