楼上的讲的都是可行的方法,但如果你觉得除太多次数麻烦的话可以这样:
1、找出距离1000最小的2的n次方:
这里应该是2^10 = 1024;
是2的几次方就在1后添几个零,所以:
1024 = 1,0000,0000,00
这个数就是1024的二进制形式。
2、把该值与1000的差值求出来:
这里1024 - 1000 = 24;
24 = 2^4 + 2^ 3;
所以24的的二进制就为:
1,0000 +
0,1000 =
1,1000;
3、因为1000 = 1024 - 24所以:
1000的二进制 =
1,0000,0000,00 -
0,0000,0110,00 =
0,1111,1010,00
二进制的家减法和十进制规律相同,只不过是逢2进一,借位为2,比如:
加法只要记住同一位如果有2个1相加那么该位就为0且向前一位进一,如:
0100(4) +
0111(7) =
1011(11)
减法只要记住同一位如果有0减1不够减的话向前一位借的数是2,前一位如果为1借后就为0;如果前一位为0就需要再向前一位借2,直到借够为止,被借过的位都变为1,如:
1,0000(16) -
0,1001(9) =
0,0111(7)
如果你是要把10进制数表示为2进制输出的程序的话我也写了个,你可以参考下:
#include <iostream>
#include <limits>
using namespace std;
int main()
{
typedef unsigned long ulong;
const ulong usize = numeric_limits<ulong>::digits;
const ulong number = 1000; // 要转换的10进制数
ulong high_bit = 0x80000000;
bool encounter_1 = 0;
for(int i = 0; i < usize; ++i)
{
if((high_bit >> i) & number)
{
encounter_1 = true;
cout << '1';
}
else if(encounter_1)
{
cout << '0';
}
}
}
采用"乘2取整,顺序排列"法可以十进制小数转化为二进制,现在以十进制数0.125为例进行演示,具体操作请参照以下步骤。
1、方法主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0,以0.125进行演示。
2、首先将小数部分0.125乘以2,得0.25,然后取整数部分0。
3、然后再将小数部分0.25乘以2,得0.5,然后取整数部分0。
4、然后再将小数部分0.5乘以2,得1,然后取整数部分1,没有小数部分了。
5、得到的二进制的结果是0.001。完成以上设置后,即可把十进制小数转化为二进制。
本文来自作者[北辰超级甜]投稿,不代表泰博号立场,如若转载,请注明出处:https://www.staplesadv.cn/ds/45206.html
评论列表(3条)
我是泰博号的签约作者“北辰超级甜”
本文概览:楼上的讲的都是可行的方法,但如果你觉得除太多次数麻烦的话可以这样:1、找出距离1000最小的2的n次方:这里应该是2^10 = 1024;是2的几次方就在1后添几个零,所以:1...
文章不错《十进制1000转二进制的过程》内容很有帮助