您现在所在的是:

PLC论坛

回帖:16个,阅读:3692 [上一页] [1] [2] [下一页]
43274
YXBK 版主
文章数:19864
年度积分:653
历史总积分:43274
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/2/6 15:47:55
#10楼
这种转换在触摸屏里面(截图是威纶通软件)勾一勾就可以了

附件 微信截图_20230206154511.jpg
大家一起学习
2704
黄昏放牛
文章数:199
年度积分:69
历史总积分:2704
注册时间:2011/6/23
发站内信
发表于:2023/2/6 19:59:20
#11楼
回复 #10楼 YXBK
了解。活到老学到老。谢谢
4136
514076529
文章数:505
年度积分:77
历史总积分:4136
注册时间:2012/4/3
发站内信
发表于:2024/12/3 15:19:19
#12楼
回复 #1楼 YXBK
你好有两个问题想请教下:
1,把D10传给K2M8,K2M8表示8个位元件,最大表示的数字为255,如果D10大于255不是会出错吗?
2,
附件 2.jpg
我对这个例子一脸懵,如何知道这个数据表示负数?取反+1又是什么操作?
43274
YXBK 版主
文章数:19864
年度积分:653
历史总积分:43274
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2024/12/3 17:12:46
#13楼
以下是引用5140765292024/12/3 15:19:19的发言:
你好有两个问题想请教下:
1,把D10传给K2M8,K2M8表示8个位元件,最大表示的数字为255,如果D10大于255不是会出错吗?
2,
附件 2.jpg
我对这个例子一脸懵,如何知道这个数据表示负数?取反+1又是什么操作?


1.肯定会乱套

2.具体如何转换的我也不清楚

但是在PLC里面的十六进制 FF FF EC 78 转换成十进制就是-5000

附件 微信截图_20241203170838.jpg
大家一起学习
4136
514076529
文章数:505
年度积分:77
历史总积分:4136
注册时间:2012/4/3
发站内信
发表于:2024/12/3 17:35:07
#14楼
以下是引用YXBK2024/12/3 17:12:46的发言:
以下是引用5140765292024/12/3 15:19:19的发言:
你好有两个问题想请教下:
1,把D10传给K2M8,K2M8表示8个位元件,最大表示的数字为255,如果D10大于255不是会出错吗?
2,
附件 2.jpg
我对这个例子一脸懵,如何知道这个数据表示负数?取反+1又是什么操作?


1.肯定会乱套

2.具体如何转换的我也不清楚

但是在PLC里面的十六进制 FF FF EC 78 转换成十进制就是-5000

附件 微信截图_20241203170838.jpg
既然会那样,为什么还那样用?!是D10的数值不可能大于255吗?
此帖发自手机工控论坛
43274
YXBK 版主
文章数:19864
年度积分:653
历史总积分:43274
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2024/12/3 19:32:04
#15楼
以下是引用5140765292024/12/3 17:35:07的发言:
以下是引用YXBK2024/12/3 17:12:46的发言:
以下是引用5140765292024/12/3 15:19:19的发言:
你好有两个问题想请教下:
1,把D10传给K2M8,K2M8表示8个位元件,最大表示的数字为255,如果D10大于255不是会出错吗?
2,
附件 2.jpg
我对这个例子一脸懵,如何知道这个数据表示负数?取反+1又是什么操作?


1.肯定会乱套

2.具体如何转换的我也不清楚

但是在PLC里面的十六进制 FF FF EC 78 转换成十进制就是-5000

附件 微信截图_20241203170838.jpg
既然会那样,为什么还那样用?!是D10的数值不可能大于255吗?
在我1楼的回复里面,D10是不会超出的,因为通讯读出来的最多就是FF,也就是最多8个二进制1。不会有9位出来的。
此帖发自手机工控论坛
大家一起学习
4136
514076529
文章数:505
年度积分:77
历史总积分:4136
注册时间:2012/4/3
发站内信
发表于:2024/12/4 9:38:30
#16楼
回复 #15楼 YXBK
AI告诉了答案
FFFFEC78转换成10进制为什么是-5000?

理解FFFFEC78转换成-5000的原因
进制转换的基础知识
十六进制(Hexadecimal): 使用0-9和A-F共16个字符表示数字。
十进制(Decimal): 我们日常使用的计数方式,使用0-9十个数字。
补码表示法: 在计算机中,负数通常用补码表示。正数的补码就是其本身,负数的补码等于其绝对值的补码再加1。
转换过程详解
补码判断:

最高位为1: 表示该数为负数,采用补码表示。
FFFFEC78的最高位F(即1111 in binary)为1,因此它表示一个负数。
求取补码的原码:

求反: 将所有位取反(0变1,1变0),得到00001387。
加1: 在结果上加1,得到00001388。
将二进制转换为十进制:

00001388(二进制) = 5000(十进制)
还原为负数:

由于原数为负数,因此最终结果为-5000。
总结
FFFFEC78这个十六进制数,实际上是-5000的补码表示。通过求补码的原码,再将二进制转换为十进制,最终得到-5000这个结果。

所以,FFFFEC78转换成十进制是-5000,是因为它使用了补码表示法来表示负数。

为什么要用补码?
统一加减运算: 计算机内部采用统一的加法器,无论是正数还是负数的加减运算,都可以看成是补码的加法运算。
简化硬件电路: 补码表示法使得硬件电路的设计更加简单。
拓展
不同位数的表示范围: 16位的有符号整数的表示范围是-32768~32767。
其他进制转换: 二进制、八进制、十进制、十六进制之间可以相互转换。
浮点数表示: 浮点数的表示方式更为复杂,涉及到阶码和尾数。
总结
通过这个例子,我们可以更深入地了解计算机内部是如何表示和处理数据的。补码表示法是计算机体系结构中非常重要的一部分,理解补码的原理有助于我们更好地理解计算机的工作方式。

如果您还有其他关于进制转换或补码表示的问题,欢迎随时提出。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004