小白初学,C语言中的进制转换代码不懂

二进制的:while(b[i++]=t%2,t=t/2);这个是什么意思啊???才刚学到十进制转换为二进制的代码,有一个比较复杂的词不懂,应该是以后要学的,但就是想搞懂,... 二进制的:while(b[i++]=t%2,t=t/2);
这个是什么意思啊???
才刚学到十进制转换为二进制的代码,有一个比较复杂的词不懂,应该是以后要学的,但就是想搞懂,求大神帮帮忙
展开
 我来答
金色潜鸟
2018-05-06 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5707万
展开全部
while(b[i++]=t%2,t=t/2);
小括号里是用逗号分隔的 “逗号表达式”。
一个 表达式 是 b[i++]=t%2,另一个是 t=t/2
逗号表达式 的 值 等于 最右一个表达式的值,即 t=t/2。
while 是循环语句,循环体是空语句,循环条件是 (t=t/2)不等于0,换一句话说, if ((t=t/2)==0) 时 break; 循环结束。
i++ 是后缀加加,后缀加加 在表达式里 用 i, 出了表达式 自增1,i=i+1;
t%2 是整除取余数运算,即,t 是偶数 得 0,t 是奇数 得 1。
t=t/2; 是整除2取商的 赋值运算。
b[] 里存放2进制结果。b[0]是最右的一位。
-----
while(b[i++]=t%2,t=t/2); 可写成:
while(1){
b[i]=t%2; t=t/2;
if (t==0) break;
i++;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式