整数和浮点数的区别

整数和浮点数的区别

2023年7月13日发(作者:)

整数和浮点数的区别:

整数是指正整数、负整数和零,如-6、0、32 等。

浮点数是指带有有限位小数的有理数,如-10.8、0.00、25.01 等。

整数既可以是整数,也可以是浮点数,例如255 是整数,而255.0 则是浮点数。

整数运算,得到的结果是一个整数,并且计算结果中的小数部分将被忽略。例如:用整数运算时,100÷3=33。

浮点运算,得到的结果是一个浮点数,计算结果中的小数部分将保留下来。

例如:用浮点运算时,100.0÷3.0=33.33333333。

回复:请教:zhanmin大哥,255.0和25.5如何整数和二进制数转换

请教:zhanmin大哥,255.0和25.5如何整数和二进制数转换。

他们要用PLC几个字节。多谢!新年快乐

回复:数据计算时,数据必须转换为浮点数吗?

数据计算时,数据必须转换为浮点数吗?

回复:好像都转换为浮点数,但感觉没有意义(个人见解)

我们一般都转换为浮点数,但感觉没有意义。我对浮点数研究不深,认为在PLC的数据转换中,采用浮点数好像没有多大意义。

整数计算完全可以解决小数点的问题。

1、整数放在32位数据区,将采集数据放大100倍,等于小数点精确到两位。何必采用浮点数呢。

2、浮点数是小数运算。和整数放大,计算的精度没有任何区别

回复:应该有作用吧,但我不知道

回复:尽管我也说不清楚。但肯定有转换的道理

尽管我也说不清楚。但肯定有转换的道理。请高人讲讲道理。

回复:支持一下,尽管我也是用INT-FLOAT转换,但感觉实在没有意义,也许我们的认识肤浅。

支持一下,尽管我也是用INT-FLOAT转换,但感觉实在没有意义,也许我们的认识肤浅。

回复:a_TIE,的确如此,讨论一番

个人认为,a_tie,说的有道理,我基本就是采用放大倍数的方法。精度没有任何影响。

不过,我有一点疑惑,PLC浮点数指令,有什么作用呢?

回复:浮点数的表示方法

浮点数的表示方法

浮点数,是指小数点在数据中的位置可以左右移动的数据。它通常被表示成:

N = M* RE

这里的M(Mantissa)被称为浮点数的尾数,R(Radix)被称为阶码的基数,E(Exponent)被称为阶的阶码。计算机中一般规定R为2、8或16、是一个确定的常数,不需要在浮点数中明确表示出来。因此,要表示浮点数,一是要给出尾数M的值,通常用定点小数形式表示,它决定了浮点数的表示精度,即可以给出的有效数字的位数。二是要给出阶码,通常用整数形式表示,它指出的是小数点在数据中的位置,决定了浮点数的表示范围。浮点数也要有符号位。在计算机中,浮点数通常被表示成如下格式:

Ms是尾数的符号位,即浮点数的符号位,安排在最高一位; E 是阶码,紧跟在符号位之后,占用m位,含阶码的一位符号;

M 是尾数,在低位部分,占用n位。

合理地选择m和n的值是十分重要的,以便在总长度为1+m+n个二进制表示的浮点数中,既保证有足够大的数值范围,又保证有所要求的数值精度。例如,在PDP-11/70计算机中,用32位表示的一个浮点数,符号位占一位,阶码用8位,尾数用23位,数的表示范围约为±1.7*10±38 ,精度约为10进制的7位有效数字。

若不对浮点数的表示格式作出明确规定,同一个浮点数的表示就不是唯一的。例如0.5也可以表示为0.05×101 , 50×10-2 等。为了提高数据的表示精度,也为了便于浮点数之间的运算与比较,规定计算机内浮点数的尾数部分用纯小数形式给出,而且当尾数的值不为0时,其绝对值应大于或等于0.5,这被称为浮点数的规格化表示。对不符合这一规定的浮点数,要通过修改阶码并同时左右移尾数的办法使其变成满足这一要求的表示形式,这种操作被称为的规格化处理,对浮点数的运算结果就经常需要进行规格化处理。

当一个浮点数的尾数为0,不论其阶码为何值,该浮点数的值都为0。当阶码的值为它能表示的最小一个值或更小的值时,不管其尾数为何值,计算机都把该浮点数看成零值,通常称其为机器零,此时该浮点数的所有各位(包括阶码位和尾数位)都清为0值。

按国际电子电气工程师协会的IEEE标准,规定常用的浮点数的格式为:

符号位 阶码 尾数 总位数

短浮点数 1 8 23 32

长浮点数 1 11 52 64

临时浮点数 1 15 64 80

对短浮点数和长浮点数,当其尾数不为0值时,其最高一位必定为1,在将这样的浮点数写入内存或磁盘时,不必给出该位,可左移一位去掉它,这种处理技术称为隐藏位技术,目的是用同样多位的尾数能多保存一位二进制位。在将浮点数取回运算器执行运算时,再恢复该隐藏位的值。对临时浮点数,不使用隐藏位技术。

从上述讨论可以看到,浮点数比定点小数和整数使用起来更方便。例如,可以用浮点数直接表示电子的质量9×10-28 克,太阳的质量2×1033 克,圆周率3.1416等。上述值都无法直接用定点小数或整数表示,要受数值范围和表示格式各方面的限制。

回复:我也看不懂,谁帮助分析一下(有关数据类型)

(1)char、varchar、text和nchar、nvarchar、ntext char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

后面三种数据类型和前面的相比,从名称上看只是多了个字母"n",它表示存储的是Unicode数据类型的字符。写过程序的朋友对Unicode应该很了解。字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较:nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。

(2)datetime和smalldatetime

datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒。

smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。

(3)bitint、int、smallint、tinyint和bit

bigint:从-2^63(-9223372)到2^63-1(9223372)的整型数据。

int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。

smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。

tinyint:从0到255的整数数据。

bit:1或0的整数数据。

(4)decimal和numeric

这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。

(5)float和real

float:从-1.79^308到1.79^308之间的浮点数字数据。

real:从-3.40^38到3.40^38之间的浮点数字数据。在SQL Server中,real的同义词为float(24)。

字段类型 描述 bit 0或1的整型数字

int 从-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型数字

smallint 从-2^15(-32,768)到2^15(32,767)的整型数字

tinyint 从0到255的整型数字

decimal 从-10^38到10^38-1的定精度与有效位数的数字

numeric decimal的同义词

money 从-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的货币数据,最小货币单位千分之十

smallmoney 从-214,748.3648到214,748.3647的货币数据,最小货币单位千分之十

float 从-1.79E+308到1.79E+308可变精度的数字

real 从-3.04E+38到3.04E+38可变精度的数字

datetime 从1753年1月1日到9999年12日31的日期和时间数据,最小时间单位为百分之三秒或3.33毫秒

smalldatetime 从1900年1月1日到2079年6月6日的日期和时间数据,最小时间单位为分钟

timestamp 时间戳,一个数据库宽度的唯一数字

uniqueidentifier 全球唯一标识符GUID

char 定长非Unicode的字符型数据,最大长度为8000

varchar 变长非Unicode的字符型数据,最大长度为8000

text 变长非Unicode的字符型数据,最大长度为2^31-1(2G)

nchar 定长Unicode的字符型数据,最大长度为8000

nvarchar 变长Unicode的字符型数据,最大长度为8000

ntext 变长Unicode的字符型数据,最大长度为2^31-1(2G)

binary 定长二进制数据,最大长度为8000

varbinary 变长二进制数据,最大长度为8000

image 变长二进制数据,最大长度为2^31-1(2G)

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689245934a225594.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信