以十进制的-3转换成二进制为例。首先将 -3 的绝对值 +3 转换成二进制,假设是为int类型(32位)的,那么二进制表示为:0000 0000 0000 0000 0000 0000 0000 0011。
负数转换成二进制分为3步:
1、 首先将负数转换为对应的原码。
-3 的原码为(也就是+3转换成二进制后的字符串):0000 0000 0000 0000 0000 0000 0000 0011。
2、 再将原码的每一位做取反操作得到反码。
取反操作:0变为1 、 1变为0;取反后的结果即为:1111 1111 1111 1111 1111 1111 1111 1100。
3、 将反码+1得到补码:1111 1111 1111 1111 1111 1111 1111 1101。
1、十进制整数转换为二进制整数。
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
2、十进制小数转换为二进制小数。
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
以十进制的-3转换成二进制为例。首先将 -3 的绝对值 +3 转换成二进制,假设是为int类型(32位)的,那么二进制表示为:0000 0000 0000 0000 0000 0000 0000 0011
负数转换成二进制分为3步:
1、 首先将负数转换为对应的原码
-3 的原码为(也就是+3转换成二进制后的字符串):
0000 0000 0000 0000 0000 0000 0000 0011
2、 再将原码的每一位做取反操作得到反码。
取反操作:0变为1 、 1变为0;取反后的结果即为:
1111 1111 1111 1111 1111 1111 1111 1100
3、 将反码+1得到补码
1111 1111 1111 1111 1111 1111 1111 1101
我自己读高中时推算出来十进制化二进制的方法,可能给你点启示
十进制换成其它进制的方法都是一样的
先把十进制数用补码表示成二进制数,然后将二进制数转换成八进制,这是最容易理解的办法。补码你会吧(绝对值二进制按位取反+1),二进制转八进制你会吧,光要个答案可不行。
先把十进制数用补码(绝对值二进制按位取反+1)表示成二进制数,然后将二进制数转换成八进制,这是最容易理解的办法。