求二进制基础算法和表达式,谢谢

 我来答
彡灬小贝丨丶
2016-03-03 · TA获得超过334个赞
知道小有建树答主
回答量:193
采纳率:100%
帮助的人:60.6万
展开全部
用编程思想给你解释吧,把你的十进制数除以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]);
}//倒序输出
追问
那我想请问一下,二进制容易学吗
追答

我不是已经告诉你二进制怎么来了么,当然这只是正整数的二进制算法,一般来说只需要懂这个就行了。你还想学什么?用二进制来编码,那恐怕是四五十年前的大神才能做的事了。算了,我给你发图吧

计算机内部表示数的字节单位是定长的,如8位,16位,或32位。所以,位数不够时,高位补零。即规范的写法为(42)10=(00101010)2

小数转换为二进制的方法:对小数点以后的数乘以2,取结果的整数部分(不是1就是0),然后再用小数部分再乘以2,再取结果的整数部分……以此类推,直到小数部分为0或者位数已经够了,然后把取的整数部分按先后次序排列就好,以0.125举例,

42.125的二进制表示就是(42.125)10=(00101010.001)2

本次回复参考dihui2040百度经验

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式