我的问题是在下面的例子中val = val >> 2;
做什么?那就是我相信它是除以4。
int val = 12345678;
val = val >> 2;
这是这个问题的背景。
我有一个水表读数,比如 12345678。我们的水表工作方式是将右侧的两个数字丢弃以供读取,因此 123456 确实是读数。(有理由丢弃与水流如何使寄存器转动有关的两个右手数字。不过,这与我的问题无关。)
目前,我们使用 4GL 整数变量将 12345678 除以 100,所以我没有得到十进制数。我们得到了我们没想到的截断,我正在尝试确定位移是否会更好。
在读取被截断为 123456 后,使用最后一次读取(也被截断)计算增量,并由此产生消耗。
我在 Informix 4GL 中可以使用 C,我相信删除最低两位数的最佳方法是右移 2。我相信这是我将获得的唯一方法——例如——
5 digit meter 12345 --> 123
6 " " 123456 --> 1234
7 " " 1234567 --> 12345
感谢您容忍一个简单的问题。我们试图找出一个问题,即与仪表对话的端点是如何编程的,以及来自端点的数据真正意味着什么。