c语言中3.5 12.0=4.0还是4?

Python023

c语言中3.5 12.0=4.0还是4?,第1张

首先看你使用的是整型还是浮点型,整型的话比如3.51/2.0,取得的商去掉小数点为1.

而浮点型例如float,double,3.51/2.0=1.752,根据类型不同会在后面相应的补上小数点

这是因为表达式1/2的结果为0(整型0)。因此表达式3.5+1/2的结果为3.5(double类型)表达式Exp:3.5+1/2 由以下两个表达式Exp1和Exp2构成:Exp=Exp1+Exp2=3.5+1/2(1)Exp1: 3.5,这是一个常数表达式,表达式的值为3.5,值类型为double(2)Exp2: 1/2,这个表达式中常数1和2的类型为int。表达式的值为0,值的类型是int。(3)Exp的最终结果为3.5,值的类型为double

两种表示方式:

1、定点表示:必须有小数点。

例如:0.123, .123, 123.0。

2、指数表示:e或E之前必须有数字,指数必须为整数。

例如:12.3e3 ,123E2, 1.23e4。

注意:浮点数常量默认为double类型,如果浮点数常量表示float类型,在末尾添加小写的f或者大写的F,表示此常量为单精度浮点常量。

定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。若数据x的形式为x=x0.x1x2…xn(其中x0为符号位,x1~xn是数值的有效部分,也称为尾数,x1为最高有效位),则在计算机中的表示形式为:

一般说来,如果最末位xn= 1,前面各位都为0,则数的绝对值最小,即|x|min= 2^(-n)。如果各位均为1,则数的绝对值最大,即|x|max=1-2^(-n)。所以定点小数的表示范围是:2^(-n)≤|x|≤1 -2^(-n)。

扩展资料

由于“编码总位数为8”的限制,真值-128无法用原码、反码来表示,似乎不能用上述规则来求解补码,但实际上是可行的——只要不管它的最高位即可,操作办法如下:

将128化为二进制为:1 0000000,最高位为1,可以只对舍去最高位后剩余的7位进行处理即可,首先取反得:1111111,加1得:1 0000000,最高位有进位需丢弃,即得:0000000,加上符号位就得补码:1 0000000。

又如,当编码总位数为4时,真值X=+0.101的原码、反码、补码均为:0 101。

真值X=-0.101的原码、反码、补码依次为:1 101、1 010、1 011。

同理,特例,-1的补码为:1 000。

在定点小数中,小数点隐含在第一位编码和第二位编码之间

定点小数,是指小数点准确固定在数据某个位置上的小数,从实用角度看,都把小数点固定在最高数据位的左边,小数点前边再设一位符号位。按此规则,任何一个小数都可以被写成 :N = NS . N-1 N-2 … N-M。

参考资料来源:百度百科-定点小数的表示方法