精华内容
下载资源
问答
  • 实数如何转换为整数

    千次阅读 2021-01-12 09:49:59
    如果需要小数位就乘系数,再取整,再读取后16位。...nbsp第4级2008-12-02 16:43:39200PLC:参考转换目录下的ROUNDTRUNC指令,都是取整指令.300PLC:参考转换目录下的RTD指令取整指令回答者: weiyt - 资深顾问&nb...

    如果需要小数位就乘系数,再取整,再读取后16位。

    否则直接取整,再读取后16位。

    参考ROUND,TRUNC指令

    回答者: zhj916 - 毕业实践员&nbsp&nbsp第4级

    2008-12-02 16:43:39

    200PLC:参考转换目录下的ROUND    TRUNC指令,都是取整指令.

    300PLC:参考转换目录下的RTD指令取整指令

    回答者:

    weiyt - 资深顾问&nbsp&nbsp第13级

    2008-12-02 17:59:37

    四舍五入和取整

    四舍五入指令(ROUND)将一个实数转为一个双整数值,并

    将四舍五入的结果存入OUT指定的变量中。

    取整指令(TRUNC)将一个实数转为一个双整数值,并将实

    数的整数部分作为结果存入OUT指定的变量中。

    二者均可。

    回答者: chen11201 - 高级工程师&nbsp&nbsp第11级

    2008-12-02 18:33:00

    支持楼上

    回答者: 卧龙啸天 - 资深学长&nbsp&nbsp第3级

    2008-12-02 18:53:22

    支持楼上zhj916

    回答者: 涛 声 依 旧 - 资深学长&nbsp&nbsp第3级

    2008-12-02 19:08:02

    用ROUND或TRUNC转换为32位双整数

    用DTI将双整数转换为整数

    回答者:

    Laohuai - 顶级工程师&nbsp&nbsp第12级

    2008-12-03 19:28:56

    从西门子网站下载手册S7-200CH .pdf,参考第六章的编程指令及描述,里面有ROUND与TRUNC等指令的详细说明

    回答者: zzpdndq - 初级工程师&nbsp&nbsp第9级

    2008-12-03 21:00:12

    上一页

    1

    下一页

    展开全文
  • 展开全部1、浮点数,就是实数。字符串 可以理解字母 “abcdefh”。可以理解带小数点的数据:如1.5 100.5。整数32313133353236313431303231363533e4b893e5b19e...2、浮点数如果要转换整数,首先要取整,转换成...

    展开全部

    1、浮点数,就是实数。字符串  可以理解为字母 “abcdefh”。可以理解为带小数点的数据:如1.5  100.5。整数32313133353236313431303231363533e4b893e5b19e31333431373239,顾名思义、就是没有小数点范围  :0-65535 的  。

    双整数,同上范围 0 - 4294967295。

    2、浮点数如果要转换成整数,首先要取整,转换成双整数,然后再转换成整数。

    还有个简单的方法,如:5.000000e+001  就是5*10 的一次方,既后面的指数是几,把小数点往后移几位即可,如:

    2.410000e+001 ====24.1、2.410000e+002=====241。

    扩展资料:

    双字整数与实数的互换指令:

    (a)双字整数转换成实数指令.(b)实数转换成双字整数《四舍五入)指令。(c)实数转换成双坚技舍去尾数》指令 。

    (1)、双字整数转换为实数指令。双字整数转换力实数指令的梯形图由助记行HOLR)、使能信号(EN整数输入端(N)和实数输出深(OUD构成,其语句表由操作码(OTR)整数输入(IN和实物强出(ou构成。

    双字整数转换为实数指令 可以将32位有符号整数体转换成32实数,当使能信号EN1时,双整数IN玻转换成实数,结果传送到oUT中。

    数据范围:

    (1)双整数IN:VD、ID、QD、MD. SD、SMD、AC、LD、HC、常数、VD、*AC.*LD。

    (2)实数OUT:VD、ID、OD、MD. SD、SMD、AC、LD、VD、AC.LD。

    (2)、实数转换成汉字整数指令之四金五入职整。实数转换成双字整数(四舍五入》指令的税形图由助记府(ROUND)、使能输入(EN)。

    32位院数输入端(IN)和双字整数输出端(OUT)构成,其语句表由操作码(ROUND)、实数输入(IN)和双字整数输出(OUT)构成。

    实数转换成双字整数 (四舍五人指令可以将实数转换成32位有符号整数,如果小数部分大于等于0.5就进一位,当转换允许时,实数IN被转换成有符号整数结果传送到OUT。

    数据范围:

    (1)实数IN: VD、ID、QD MD、SD. SMD、AC、LD、HC、常数、*VD、*AC. *LD。

    (2)整数OUT:VD、ID、QD MD、SD、SMD、AC LD、*VD、*AC、*LD。

    (3)实数转换成双字整数指令之舍去尾数取整。实数转换成双字整数《舍去尾数》指令的梯形图由助记将( Truncate, TRUNC)、 使能输(EN)。

    32位实数输入端(IN)和32位整数输出湍( OUT)构成,其语句表由操作码(TRUNC) 32位实数输入(IN)和双字整数输出( OU)构成。

    实数转换成双字整数之舍去尾数指令可以将32位实数转换成32位有符号整数,小数部分被舍去,当转换允许时,32位实数IN被转换成有符号32位整数,结果传送到OUT中。

    数据范围:

    (1)实数IN:VD、ID、QD、MD.SD、SMD、AC、LD、HC、常数、*VD、*AC、*LD。

    (2)整数OUT:VD、ID、QD、MD、SD、SMD.AC、LD、*VD*AC*LD。

    展开全文
  • 整数整数之间的转换整数整数之间的转换格式、功能及说明,如表1所示。2. 双整数与实数之间的转换双整数与实数之间的转换转换格式、功能及说明,如表2所示。表2 字整数整数之间的转换指令...

    摘要:1. 字整数与双字整数之间的转换字整数与双字整数之间的转换格式、功能及说明,如表1所示。2. 双整数与实数之间的转换双整数与实数之间的转换的转换格式、功能及说明,如表2所示。表2 字整数与双字整数之间的转换指令LADSTLITD IN,OUTDTI IN,OUT操作数及数据类型IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量,数

    1. 字整数与双字整数之间的转换

    字整数与双字整数之间的转换格式、功能及说明,如表1所示。

    2.

    双整数与实数之间的转换

    双整数与实数之间的转换的转换格式、功能及说明,如表2所示。

    表2

    字整数与双字整数之间的转换指令

    LAD

    STL

    ITD  IN,OUT

    DTI  IN,OUT

    操作数及数据类型

    IN:VW,

    IW, QW, MW, SW, SMW, LW, T, C, AIW, AC,

    常量,

    数据类型:整数

    OUT:VD,

    ID, QD, MD, SD, SMD, LD, AC,数据类型:双整数

    IN:VD,

    ID, QD, MD, SD, SMD, LD, HC, AC,常量,数据类型:双整数

    OUT:VW,

    IW, QW, MW, SW, SMW, LW, T, C, AC,

    数据类型:整数

    功能及

    说明

    ITD指令将整数值(IN)转换成双整数值,并将结果置入OUT指定的存储单元。符号被扩展

    DTI指令将双整数值(IN)转换成整数值,并将结果置入OUT指定的存储单元。如果转换的数值过大,则无法在输出中表示,产生溢出SM1.1=1,输出不受影响

    ENO=0的错误条件

    0006

    间接地址

    SM4.3

    运行时间

    0006

    间接地址

    SM1.1

    溢出或非法数值

    SM4.3

    运行时间

    表2

    双字整数与实数之间的转换指令

    LAD

    STL

    DTR  IN,OUT

    ROUND  IN,OUT

    TRUNC  IN,OUT

    操作数及数据类型

    IN:VD,

    ID, QD, MD, SD, SMD, LD, HC, AC,

    常量

    数据类型:双整数

    OUT:VD,

    ID, QD, MD, SD, SMD, LD, AC

    数据类型:实数

    IN:VD,

    ID, QD, MD, SD, SMD, LD, AC,

    常量

    数据类型:实数

    OUT:VD,

    ID, QD, MD, SD, SMD, LD, AC

    数据类型:双整数

    IN:VD,

    ID, QD, MD, SD, SMD, LD, AC,

    常量

    数据类型:实数

    OUT:VD,

    ID, QD, MD, SD, SMD, LD, AC

    数据类型:双整数

    功能及

    说明

    DTR指令将32位带符号整数IN转换成32位实数,并将结果置入OUT指定的存储单元

    ROUND指令按小数部分四舍五入的原则,将实数(IN)转换成双整数值,并将结果置入OUT指定的存储单元

    TRUNC(截位取整)指令按将小数部分直接舍去的原则,将32位实数(IN)转换成32位双整数,并将结果置入OUT指定存储单元

    ENO=0的错误条件

    0006

    间接地址

    SM4.3

    运行时间

    0006

    间接地址

    SM1.1

    溢出或非法数值

    SM4.3

    运行时间

    0006

    间接地址

    SM1.1

    溢出或非法数值

    SM4.3

    运行时间

    值得注意的是:不论是四舍五入取整,还是截位取整,如果转换的实数数值过大,无法在输出中表示,则产生溢出,即影响溢出标志位,使SM1.1=1,输出不受影响。

    展开全文
  • C语言浮点数和整数转换的分析

    千次阅读 2021-05-22 12:42:04
    这里以C语言的浮点数例,在IEEE浮点标准下,整数转换为浮点数的过程做一些直观的分析和具体的实现,IEEE浮点数的标准细节详见()。在C语言中,使用float和double类型数据分别对应单精度和双精度的浮点格式。以float...

    这里以C语言的浮点数为例,在IEEE浮点标准下,整数转换为浮点数的过程做一些直观的分析和具体的实现,IEEE浮点数的标准细节详见()。

    在C语言中,使用float和double类型数据分别对应单精度和双精度的浮点格式。以float为例,由于float是32位,int在32位机器上也是32位。因此,float必然不能对所有的int进行准确的表示。实际上,在数轴上,浮点数所能表示的数呈非均匀的分布。举例如下图。

    .     . -3  .   .  .  .-2  . . .  -1..........0.........1.. . .   . 2 .  .     .      3.       .

    图中的点代表float可表示的数,可以看出,在所能表示的数中,接近0的比较密集,远离0的则步长逐渐增大。具体的步长可以根据浮点数标准算出。

    以float为例,符号位1位,阶码8位,位数23位。由IEEE浮点的标准可知,非规格化数表示那些非常接近0.0的数。这时候,阶码域全为0.因此,非规格化数的步长为

    2-23×2-127 ≈ 1.4×10-45

    而非规格化数的范围则约等于   -1.2×10-38 到1.2×10-38 在这个范围内,float能表示的数呈均匀分布。

    而int则处在规格化数的范围内。对于规格化数,步长不均匀。步长可表示为

    2-23×2E

    其中,E的取值范围是-126~+127。显然,随着E增大,步长增大。因此,对于越远离0的区域,步长越大。当E =  30时,步长为128。如下程序是一个验证。

    uid-28502731-id-3862266.html

    其中,浮点数表示2的30次方,刚阶码值E=30,程序中a数组记录x每次加一的结果,从输出中可以看出,因为步长为128,在0-64次相加中,并没有改变a[i]的值,而在后64次相加中,a[i]则保持为2的30次方+128。

    uid-28502731-id-3862266.html

    因此,除了不均匀的步长以外,还需要考虑的是舍入的问题。由上面的测试中可知,C语言的舍入方法中,若整数处于步长的前半,则向下舍入,否则向上舍入。而对于刚好处于中间的数,例如上图中a[64],这种与前后的可取的数距离相等,则采用向偶数舍入的原则。即取表示成float形式后,最后一位为偶数(0)的数。

    分析到此,开始实现,说白的就是实现一个 float f = float(integer)的功能。函数原型如下:

    unsigned  float_itof(int i)

    把整数i转换为float的表示形式,然后返回对应的4个字节。函数中不能使用float类型及其运算。

    代码如下:

    unsigned float_i2f(int i)

    {

    unsigned x,E,e;

    int count;

    unsigned j;

    unsigned low,high;

    count = 0;

    x = 0;

    if(i==0)

    return x;

    //float不采用补码,正负数根据第一位符号位决定

    if(i<0)

    {

    i = -i;

    x = x|0x80000000;

    }

    j = i;

    //整数均为规格化数,先进行移位

    while((j&0x80000000)!=0x80000000)

    {

    j = j<<1;

    count++;

    }

    j=j<<1;

    //求出阶码

    E = 32-++count;

    e = E+127;

    //小于2的24次方,把阶码和有效位填入,完成

    if((i&0xff000000)==0)

    {

    x = x|(e<<23);

    x = x|(j>>9);

    return x;

    }

    //大于2的24次方,要进行舍入

    else

    {

    j=j>>count;

    //high low即进位或舍去尾数

    low = j&(~((1<

    high = low+(1<

    //偶舍入原则

    if(j-low>high-j)

    j = high;

    else if(j-lowj = low;

    else if((low&(1<

    j = low;

    else

    j = high;

    if((((low>>(E-23))&0x7fffff)==0x7fffff) && (j==high))

    {

    e++;

    }

    //填入各位,完成

    x = x|(e<<23);

    x = x|((j>>(E-23))&0x7fffff);

    }

    }

    对输入i进行 INT_MIN 到 INT_MAX的范围测试,与float(i)的结果逐字节比较。代码正确。

    展开全文
  • I need the correct formula that will convert hours to minutes and vice versa.I have written a code, but it doesn't seem to work as expected.For eg:If I have hours=8.16, then minutes should be 490, but...
  • 单精度与双精度

    2021-02-04 22:46:23
    双精度(double)在计算机中存储占用8字节,64位,有效位数16位。原因:不管float还是double 在计算机上的存储都遵循IEEE规范,使用二进制科学计数法,都包含三个部分:符号位,指数位和尾数部分。其中float的符号位...
  • 计算机程序中的浮点数分为单精度浮点数和双精度浮点数。单精度和双精度精确的范围不一样。计算机里的最基本的存储单位用位(bit)来表示。bit只能用来存储0或1。稍大一点的单位是字节(Byte,简写B)。再大一级的是千...
  • 关键点:Double类型浮点数转换成IEEE754双精度时以二进制串存储,以十进制方式存储会导致精度丢失,因为double类型不能准确表示(2^64)的整数。 Double转IEEE754双精度 function TransData = Double2IEEE754_Bin...
  • 对于取整,在C语言中有专门的取整符号[],在Matlab中三种方法实现(1)数据类型转换可以采用数据类型变换的方法进行。a=12.356;b=double(uint16(a));%这里利用了浮点数变无符号整型数时的四舍五入的特点if ab=b-1...
  • 在matlab中有这么两个函数hex2num(str),将16进制字符串str(默认双精度)转换成一个数(如果加一个类型转换可以转换为单精度hex2num(single(str))num2hex(num),将一个双精度的数num(默认)装换成16进制字符串(当然也...
  • 展开全部double,双精度浮点型,输出使用%lf。e68a843231313335323631343130323136353331333365666166short int,短整型,输出对应%d。例如:#includevoid main(){double a;a=8.0/3.0;short int b;b=8;printf("a=%lf...
  • 这篇文章解释了什么它在这个范围内工作 。在double中,你可以代表32位整数,没有任何问题。 不能有任何舍入问题。 更确切地说,双打可以代表2 53和-2 53之间的所有整数。简短说明 :一个double可以存储多达53个二...
  • 我们在写程序时,总是会自觉或不自觉地频繁用到类型转换,比如将整数转换为浮点数或反之。今天的题目主要讨论基本类型的转换(但和普通的类型转换有所不同哦,详见后文),考考你是否真的理解了类型转换的本质。在面向...
  • java单精度和双精度的区别

    千次阅读 2021-03-17 12:15:53
    什么会有精度问题?计算机处理数据都涉及到数据的转换和各种复杂运算,比如,不同单位换算,不同进制(如二进制十进制)换算等,很多除法运算不能除尽,比如10÷3=3.3333.。。。。。。无穷无尽,而精度是有限的,3....
  • 计算机中float, double类型数据分别占据4,8个字节,其中float类型和double可以表示的小数位数不同,导致了精度不同。double的精度更高。 计算机中数据的表示由:符号位, 指数位,尾数位组成。比如一个float类型...
  • 转matlab运算精度

    2021-04-24 23:23:12
    假如运算精度是4位有效数字,那么我们计算1/3时,结果应该0.3333,而圆周率就是3.142。这其实很好理解,我们只要在求解的过程中每一次运算都保留4位有效数字就行了,关键在于怎么用matlab实现。首先声明一点,...
  •   对于整数转换为字符串,或者字符串转换整数,可以直接使用库函数中提供的方法。如常用的字符串转换相关函数如下: atof():将字符串转换为双精度浮点型值。 atoi():将字符串转换整型值。 atol():将字符串...
  • 该情况下,unsigned short与int运算,b被转为int,因此输出1.问题4:a与b运算,结果要转化uint,但由于printf输出%d,相当于强制转化为了int型。写到这里,我发现一个问题,即运算时,究竟是先转化类型再...
  • 满意答案如果用%d,得到的数1546188226 下面我们通过实验来剖析什么得到的是这个数,而不是8 (1)在加入一行代码并设置断点如下: inta=7.1; doubleb=1.88; doublec=a+b;//加此行代码(注:因int+double自动转...
  • 小数点分为整数部分和小数部分,它们之间用点分隔. 例如,0.0、75.0、4.023、0.27,-937.198 -0.27等都是合法的小数. 这是最常见的小数形式. 这称为十进制形式.此外,十进制数也可以采用指数形式,例如7.25×102、0....
  • 这篇文章主要大家详细介绍了javascript 浮点数转换整数三种方法,具有一定的参考价值,可以用来参考一下。将浮点数转换整数方法有很多,分享三种常用方法。感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看...
  • [Java教程]javascript浮点数转换整数三种方法0 2014-06-24 04:00:27将浮点数转换整数方法有很多,分享三种常用方法。Summary暂时我就想到3个方法而已。如果读者想到其他好用方法,也可以交流一下parseInt位...
  • 回忆起Cifer中学时代玩魔兽世界,金币最大21万4748金币36银币47铜币,即2147483647,当时并不懂原因,还以为暴雪想限制游戏平衡、防玩家沉迷。简单理解,带符号的32位int中2^31-1 = 2147483647 。但在JS整数中,...
  • 我是Objective-c的初学者,我被分配我们的...这些问题之一是我需要从我的iOS应用程序PHP的date函数发送一个整数值。我一直在寻找解决方案,但是所有这些方法都以相反的方式(NSDate的int)而不是NSDate的整数值。...
  • 本文就带各位温顾温顾java浮点型、单精度浮点数、双精度浮点数。浮点型首先明确java中浮点型数据类型主要有:单精度float、双精度double至于浮点型就是跟int ,string类型差不多。都是数据类型。浮点型浮点型别给我...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,516
精华内容 27,406
关键字:

双精度整数转换为整数