将无符号数转换为有符号数,读出来的数转换成十进制是6万多的数,所以符号位没有读出来不知道有什么指令可以把这个数转换成有符号数,是从BCD码转成十进制的,符号位被当成有效数了但不知道怎么解决
-
-
jwx506 发表于 2024/10/24 23:44:01
如果你原先的数据是有符号的BCD码,请这样操作:
第一步:使用与操作将符号位数据保留,并将原先数据的符号位置0。
第二步:使用BCD转INT将数据由BCD码转为10进制。
第三步:使用或操作将原先保留的符号位写入到转化后数据的符号位上。
当你多个数据需要如此操作的话,请将上述过程写成FC或者子程序。
引用 jwx506 2024/10/24 23:44:01 发表于2楼的内容
-
-
lvgang 发表于 2024/10/24 23:49:44
语言有符号数与无符号数之间的转换:无符号数:不存在正负之分,所有位都用来表示数的本身。
有符号数:最高位用来表示数的正负,最高位为1则表示负数,最高位为0则财沃表示正数。1. 无符号数转换为有符号数:看无符号数的最高位是否为1,如果不为1(即为0),则有符号愁怕数就直接等于无符号数;
2.如果无符号数的最高位为1,则将无符号数取补码,得到的数就是有符号数。
3..有符号数转换为无符号数 :看有符号数的最高位是否为1,如果不为1(即为0)暗廊夏,则无符号数就直接等于有符号数;
4.如果有符号数的最高位为1,则将有符号数取补码,得到的数就是无符号数。
引用 lvgang 2024/10/24 23:49:44 发表于3楼的内容
-
引用 lxf11 2024/10/24 23:50:37 发表于4楼的内容