C语言里面的十进制转二进制的余数怎么弄的,老是搞不懂,求大虾帮下?
商不为0模2法
将被转换的数对2求模(即除2后的余数)得到二进制最低位
如果商不为零,将得到的商继续模2,直到商为0,将得到的所有余数按相反的顺序依次写出,就是这个数的二进制表示。
10进制转其他进制类似
转换8进制就对8取模,十六进制就对16取模,规则都是一样的
c语言中如何区分二进制和十进制?
一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式。但是,表示一个二进制、八进制或者十六进制数字就不一样了,为了和十进制数字区分开来,必须采用某种特殊的写法,具体来说,就是在数字前面加上特定的字符,也就是加前缀。
1. 二进制
二进制由 0 和 1 两个数字组成,使用时必须以0b或0B(不区分大小写)开头,例如://合法的二进制 int a = 0b101; //换算成十进制为 5 int b = -0b110010; //换算成十进制为 -50 int c = 0B100001; //换算成十进制为 33 //非法的二进制 int m = 101010; //无前缀 0B,相当于十进制 int n = 0B410; //4不是有效的二进制数字。
2. 十进制
十进制由 0~9 十个数字组成,没有任何前缀,和我们平时的书写格式一样。
十进制数15转换为二进制数是多少?
对应的二进制数是1111。;十进制整数转换为二进制整数采用"除2取余,逆序排列"法。;运算过程:;用2整除十进制整数,可以得到一个商和余数。;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止。;把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。;例如:15;“15/2=7……1”--“7/2=3…1”--“3/2=1…1”--“1/2=0...1”;故为:1111十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。