题目要求是输入一个数 输出它在内存中存储的二进制数。就是我找了这个代码但是没学过有点看不懂,希望会的人帮帮忙
sizeof(n)就是变量n占用的内存byte数
int型应该是4
至于为什么乘以2,c又代表什么,你这代码也不全,题目也没放全,确实猜不到
while(bit-->0)
千万别把-->理解成箭头,那就掉沟里了
bit--是一个表达式,0是另一个表达式,就是在判断左边是否大于右边,大于就循环,不大于就停止循环
n>>bit就是n右移bit位,&1就是跟1做与运算
那么整个的效果就是先把第0位跟1与,输出0或者1;然后右移之后,第1位跑到第0位去了,相当于把第1位跟1与,输出0或者1;然后继续移位,继续与,这样输出每一位
但是这明显跟题目要求不符啊,不是从高到低的输出吗,现在是从低到高输出的
sizeof是返回变量类型占用的字节数。你要输出二进制,则需要乘8了。
int bit=sizeof(n)*8;
跟数组下标一样道理,要执行一次bit--
然后依次右移bit个位跟1做&运算可得到二进制。