这是无符号长整形转二进制的
不明白
为什么要fenum=pow(2,24)
char ch=num/fennum
还有那个temp=ch>>i;
int fenum=pow(2,24);pow是一个函数,传入了2,24这两个参数,返回的是一个int类型的数据给fenum。
char ch= num/fenum;num是调用这个函数是传入过来的参数,num和fenum这两个参数相除,得到这个char类型数据赋值给ch
temp=ch>>i;是一种右移赋值,具体我就不知道了。可以请教c语言的大神。希望能帮到你
pow(2,24)表示2的24次幂赋值给整形fenum,char ch= num/fenum为num除以fenum结果取整赋值给char类型的ch,char temp=ch>>i这个为ch右移i位,就相当于先把ch转换成二进制的数,比如200的二进制数为11001000,右移2位就为00110010转换为十进制就为50
无符号长整形是32位的,这个函数的算法是分四次打印,每次打印8位,
fenum=pow(2,24);// 是获取2的24次幂
char ch=num/fennum;// 则是获取后面的8位
temp=ch>>i; // 右移一位,相当于除2,加上temp&1便可知道末位是0还是1了
fenum /= 256;// 等价于fenum = fenum / 256,256是2的8次方,懂什么意思了吧