求二进制基础算法和表达式,谢谢
1个回答
展开全部
用编程思想给你解释吧,把你的十进制数除以2,留余数(不是1就是0),然后把这个商再除以2,一直循环下去,直到商变成1,把这个1算上先前的倒序余数就是该十进制的二进制。
inaryNum[16]; //存放转换后得到的二进制码
while( (num/2) != 1 ){ //判断条件为:除以2之后的商不等于1
binaryNum[count] = num%2; //取余后的数字存入数组
num /= 2; //进行下一轮的判断
count++; //此变量用来指定数组下标
}
binaryNum[count+1] = 1; //最后一次除法做完以后,剩下的商一定是1,所以在最后手动添加一个1
...
for( int i=count+1; i>=0; i-- ){
printf("%d",binaryNum[i]);
}//倒序输出
inaryNum[16]; //存放转换后得到的二进制码
while( (num/2) != 1 ){ //判断条件为:除以2之后的商不等于1
binaryNum[count] = num%2; //取余后的数字存入数组
num /= 2; //进行下一轮的判断
count++; //此变量用来指定数组下标
}
binaryNum[count+1] = 1; //最后一次除法做完以后,剩下的商一定是1,所以在最后手动添加一个1
...
for( int i=count+1; i>=0; i-- ){
printf("%d",binaryNum[i]);
}//倒序输出
追问
那我想请问一下,二进制容易学吗
追答
我不是已经告诉你二进制怎么来了么,当然这只是正整数的二进制算法,一般来说只需要懂这个就行了。你还想学什么?用二进制来编码,那恐怕是四五十年前的大神才能做的事了。算了,我给你发图吧
计算机内部表示数的字节单位是定长的,如8位,16位,或32位。所以,位数不够时,高位补零。即规范的写法为(42)10=(00101010)2
小数转换为二进制的方法:对小数点以后的数乘以2,取结果的整数部分(不是1就是0),然后再用小数部分再乘以2,再取结果的整数部分……以此类推,直到小数部分为0或者位数已经够了,然后把取的整数部分按先后次序排列就好,以0.125举例,
42.125的二进制表示就是(42.125)10=(00101010.001)2
本次回复参考dihui2040百度经验
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询