cancel
Showing results for
Did you mean:

# PSoC Creator & Designer Software

Contributor

## uint8 vs int8 causes different outcomes

Hi,

The following evaluates true if the variables are int8, but not true if uint8 (which is correct).

// Turn relays on if over set level
if(relay[0] >= dataLocal.level + dataLocal.hysteresis)
{
FET_1_Write(1);
}

The values are:  relay[0] = 0, dataLocal.level = 128, dataLocal.hysteresis = 10.

What am I missing here?  it seems like it is defying computer logic and calling 0 greater than 138...

Thank you,
Tom

1 Solution
Anonymous
Not applicable

## Re: uint8 vs int8 causes different outcomes

Hi Tom

`for uint8 Types  128u + 10u = 138u  for int Types  128 + 10 = -118 !   Reiner`
4 Replies
Anonymous
Not applicable

## Re: uint8 vs int8 causes different outcomes

Hi Tom

`for uint8 Types  128u + 10u = 138u  for int Types  128 + 10 = -118 !   Reiner`
Contributor

## Re: uint8 vs int8 causes different outcomes

Hi,

Is this because it is treating the 128 as a hex number?

Pardon my ignorance.

Regards,
Tom

Esteemed Contributor II

## Re: uint8 vs int8 causes different outcomes

Partly.

The values an uint8 can represent are from 0 ro 255. From 255 it would overflow to 0

The values an int8 can represent are from -128 to 127, From 127 it would overflow to -128

Bob

Contributor