问问题描述
答精选答案

int型数据:-1=(1000,0001B)原=(1111,1110B)反=(1111,1111B)补=(FFH)补。补码在计算机中进行的运算不同于一般的二进制数运算。他有自己的一套规则。比如加减法:[X+Y]补=[X]补+[Y]补;[X-Y]补=[X]补+[-Y]补,通过双高位识别法进行溢出判断。补码除法分恢复余数法和加减交替法。乘除法的运算相对于加减法复杂。
C语言中数的运算也有其自己的一套规则,简单的数是int->float;short->long;的方向转变。当整型数和整型数运算时得到的一定是个整型数;整型和浮点型数运算现将整型转化为浮点型数再运算的到的是一个浮点数,若将改浮点数赋值给整型数将会进行强制类型转换。去掉小数部分而不是四舍五入。
比如:比较下列两个结果:
#include
"stdio.h
"
mian()
{int n;
float m,a,b;
printf(
"please input two num(a/b).example:100,200
");
scanf(
"%f,%f
答其他回答(1条)
-
首先1用二进制表示:0000 0000 0000 0000 0000 0000 0000 0001
那么,除以2相当于向右移动一位,这样多出来的1被丢弃,而高位用符号填充,即0,因此结构就是32个0,也就是0。
本文来自作者[杨小白111]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/changshijingxuan/202609/2420446.html

评论列表(4条)
我是公众科技网的签约作者“杨小白111”!
希望本篇文章《c语言中1除以2为什么等于0》能对你有所帮助!
本站[公众科技网]内容主要涵盖:教育咨询,知识百科
本文概览:int型数据:-1=(1000,0001B)原=(1111,1110B)反=(1111,1111B)补=(FFH)补。补码在计算机中进行的运算不同于一般的二进制数运算。他有自己的一套规则。比如加减法:[X+Y]补=[X]补+[Y]补;[X-Y]补=[X]补+[-Y]补,通过双高位识别法进行溢出判断。补码除法分恢复余数法和加减交替法。乘除法的运算相对于加减法复杂。C语言中数的运算也有其自己的一套规则,简单的数是int->float;short->long;的方向转变。当整型数和整型数运算时得到的