正文最先
+
众人好,我是阿汤哥,今日在背景看到有挚友问十进制更改成二进制,今日咱们就来看看这个题目。你了解,C言语中printf打印数的格式化示意法子有十进制、八进制、十六进制,但没有二进制。咱们需求本身编程完结。十进制何如更改成二进制?用“除2取尾数,尾数再逆向排序法”。举个例子:把十进制数13更改成二进制13除以2,商为6,尾数16除以2,商为3,尾数03除以2,商为1,尾数11除以2,商为0,尾数1把尾数逆序布列,获得:上头是咱们笔算手算,那何如用C言语编程完结?咱们用三个变量a,b,c离别纪录每一步的被除数、商、尾数。用for轮回,轮回完结的判定前提是商为0。初始形态,a=13。每一部完结后,商保管到b,尾数保管到c,并把商b值赋值给a获得新的被除数,来给下一步用。这样轮回往来。求商和求尾数好办,离别用用运算符/和%。那获得的尾数何如逆序布列?用别的一个变量,设逆序布列后的数为n,如许来做求n:设n初始为0。第一步获得的尾数1乘以1,再加之n初始值获得新的n=1×1+0=1第二步获得的尾数0乘以10,再加之上一步的n获得新的n=0×10+1=1第三步获得的尾数1乘以,再加之上一步的n获得新的n=1×+1=第四步获得的尾数1乘以,再加之上一步的n获得新的n=1×+=。过程完结。也许获得,正常的规律是:第i步的n即是第i步尾数乘以10的i-1次方,再加之上一步的n。轮回完结时,获得的n即为所求。咱们来写代码。C言语代码/**?*?Author:?阿汤哥?*?