c语言中小数怎么表示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中小数怎么表示相关的知识,希望对你有一定的参考价值。

c语言中小数怎么表示

两种表示方式:

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。

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

参考技术A

4.2用C语言表示:double d = 4.2。C语言中用于描述小数的数据类型是float和double,float类型表示单精度浮点数,double表示双精度浮点数。

1、float:

FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 excess-127 二进制指数和一个 23 位尾数。

2、double:

double(双精度浮点数)使用 64 位(8字节) 来储存一个浮点数。 它可以表示十进制的15或16位有效数字。

扩展资料

(1) 浮点型与整型

将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式, 即小数点后带若干个0。注意:赋值时的类型转换实际上是强制的。

(2) 单、双精度浮点型

由于C语言中的浮点值总是用双精度表示的,所以float 型数据只是在尾部加0延长为double型数据参加运算,然后直接赋值。double型数据转换为float型时,通过截尾数来实现,截断前要进行四舍五入操作。

参考资料:百度百科-C语言类型强制转换

参考技术B

两种表示方式:

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

例如:0.123, .123, 123.0。

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

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

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

扩展资料:

关于上述提到的定点表示和数的浮点表示

1、浮点型 float-point

float/double,都属于浮点型表示。

2、定点型 fixed-point

例如,以一个字节表示小数,小数点定在5.3位置,高5位表示整数,低3位表示小数。

11001001

加上小数点之就是11001.001即整数部分为11001,小数部分为001

转换一下

整数部分 11001 = 25

小数部分 001 = 1 (分子),分母是1000(8),所以就是1/8

最终此小数表示的是 25 + 1/8

也就是说,存0/8, 1/8, 2/8, ..., 7/8 共八个档,表示精度为1/8

可见,定点型小数的值取决于你把小数点定在哪里。

3、数的定点表示:

小数点按照约定的形式给出。在计算机里面没有专门的硬件用来表示小数点, 所谓的小数点都是计算机体系设计人员按照约点的形式给出的。

按照约定的方式, 可以将计算机分为两种:一种是小数点在数符后面数值前面, 一种是数值后面。

4、浮点表示

最早的计算机只有两种表示方式:小数定点机和整数定点机。如果计算很大的数值时需要程序员手动调节小数点的位置编程困难。

数的表示范围很小, 为了表示相差很大的数据, 往往需要很大的机器字长。

数据利用率不高, 用很大的机器字长时, 有很多位都是 0 。

5、高精度小数

#include <stdio.h>

void main()

int a,b,cnt=0;

scanf("%d/%d",&a,&b);

printf("0."); 

while(cnt<201)

if(a==0)

break;

a=a%b*10;

printf("%d",a/b);

cnt++;

 

参考资料来源:

定点小数-百度百科

浮点数-百度百科

参考技术C C语言中用于描述小数的数据类型是float和double,float类型表示单精度浮点数,double表示双精度浮点数。
C语言中浮点数常量有两种表示方式:
1、定点表示:(必须有小数点) 如:0.123, .123, 123.0。
2、指数表示:(e或E之前必须有数字,指数必须为整数)如:12.3e3 ,123E2, 1.23e4。
错误的写法:e-5 ,1.2E-3.5,e3。
注意:浮点数常量默认为double类型,如果浮点数常量表示float类型,请在末尾添加小写的f或者大写的F,表示此常量为单精度浮点常量。
float f1 = 1.1f; //小写f
float f2 = 1.1F; //大写F
double d = 1.1; //double类型
参考技术D

数学中的【小数】,在计算机中,就不叫【小数】了。

因为,一帮计算机专家,小学都没有学明白,就沉迷到计算机中了。

既然,他们不懂数学,所以,就随便起名。

那么,在计算机原理中,他们就把小数,叫做“浮点数”

“定点数”也可以表示一些小数。)

在 C 语言中,小数,又被改成了“单精度”“双精度”

同样,自然数、整数,他们也都另外胡乱的叫。

在C语言中除法运算为啥没有小数部分?

#include <stdio.h>
#include <math.h>
main()
int x;
float y;
printf("Enter x:");
scanf("%d",&x);
y=fabs((5*x+1)/(x*x+1));
printf("y is %f\n",y);


1、在C语言中附法是整除运算,比如a/b,表示a中有几个b。
2、示例:
3/2=1 //这是取整运算,即3中有1个2。
3、要保留小数,需要将结果表示成浮点数类型。
示例:(3*1.0)/2=1.5
或者 double result = 3 / 2 ;
参考技术A /是取整 整数除法的时候 只取整数部分,当除数或者被除数有一个为float类型时 才有小数部分

把除数 或 被除数 改为一个小数 就行了。。。
参考技术B int x,float y都变成double x

int x就会舍去小数

其实double的速度要比float快的。学过汇编的基本都知道
参考技术C 声明int i -》 float i
/是取整 整数除法的时候 只取整数部分,当除数或者被除数有一个为float类型时 才有小数部分
参考技术D 整数除整数=整数,如果你想得到浮点数可以这样 ((5*x+1)*1.0)/(x*x+1); //浮点数除以整数得到浮点数

以上是关于c语言中小数怎么表示的主要内容,如果未能解决你的问题,请参考以下文章

怎么将c语言中一个浮点型数据的整数部分与小数部分提取出来

c语言中怎么保留小数2位

C语言 怎么取小数的最后一位

C语言有效位

C语言中除法怎么取得小数?

C语言中除法怎么取得小数?