关于二进制负数转换十进制的来回转换

举列子:-10如何具体转换成二进制的?先+10:1010 拿个+1怎么加的,还有如何转换回来的?图片说明图片说明 有木有可以推荐的 转换进制的工具推荐?

负数其实是正数的补码,所以负数和数据类型有关,16位,32位,64位等,负数的二进制码相当于对应正数取反加一。

十进制转化为二进制是这样的:正数转化为二进制,与源码相同,负数转化为二进制,首先将负号去掉,将对应正数转化为二进制,再求其反码,反码末位加1变为补码,再加上负号,负号用1表示。
如题中的-10:

 ①蒋10转化为二进制,就是1010,
②求其反码,也就是各位取反,为0101,
③将末位加1变为补码,也就是0101+1,变为0110,
④在最高位补上负号,变成10110。

负数一般用补码表示,也就是绝对值取反以后加一。

计算器的话,win10自带的计算器就很好用,可以试试。
图片说明

可以看一下这个 http://blog.csdn.net/rongrong_love_lc/article/details/53084498

工具找到了。。就是+1不是很理解 工具计算机有 只不过看不懂英文。。

1)-10的绝对值是10,10的十六进制是0x0A,反码为0xFF-0x0A =0xF5.故补码为:0xF5+1=0xF6,二进制为11110110。
2)10二进制为00001010,取反为:11110101,再加1为11110110。注意,负数第一位为1