Всем привет!
есть вопрос... помогите пожалуйста....
переменная "А" тип INT изменяется -32767...0...32767-> -32767...0...32767.... и т.д.... т.е на выходе "пила" (это счетчик)
как ее преобразовать в DWORD чтобы считало от 0... и далшьше...??
Вид для печати
Всем привет!
есть вопрос... помогите пожалуйста....
переменная "А" тип INT изменяется -32767...0...32767-> -32767...0...32767.... и т.д.... т.е на выходе "пила" (это счетчик)
как ее преобразовать в DWORD чтобы считало от 0... и далшьше...??
Прибавь константу 32767
B:= А + 32767;
Только зачем в DWORD преобразовывать если будет от 0 до 65534?Код:VAR
B: DWORD;
A: INT;
END_VAR
B:= A + 32767;
Достаточно WORD
ЗЫ. Поправочка
Может Вы в исходных данных ошиблись?
Диапазон INT от -32768 до 32767
B:= A + 32768; ?
А, если объявить(преобразовать) в UINT, разве не будет показывать диапазон 0-65535 ?
Не будет
INT_TO_WORD(A) просто отбросит знак
т.е.
INT_TO_WORD(-32767) = 32767
ЗЫ.
Я ошибся
INT_TO_WORD(-32768) = 32768
INT_TO_WORD(-32767) = 32769
INT_TO_WORD(-32766) = 32770
INT_TO_WORD(-32765) = 32771
...........................................
INT_TO_WORD(-1) = 65535
INT_TO_WORD(0) = 0
INT_TO_WORD(1) = 1
........................................
INT_TO_WORD(32767) = 32767
Не та пила будет.