Or try
unsigned int val = 35;
unsigned int AC = 30;
int AP = -3;
if (val==35 && AP [glow]>[/glow] AC){
//do something
}
for the sake of testing, not that it is too useful

(As in, what is -3 binary,and what is this binary if it was unsigned?)
brtech's way is better of course, as long as the unsigned int's value is below 32768.
Nice link hakoni!
I got a little curious and skimmed through the atmega 328 assembler instructions. I find a lot of branch-if instructions, but no BRHI (or similar; branch if higher, unsigned). Only BRHS (branch if same or higher, unsigned I presume), and a lot of other signed and unsigned variations. Seems strange as one would have to combine at least two different tests for such a simple test, when the atmega have so many instructions. Unless I misunderstand and some of the other branch instructions are equivalent of a BRHI.
So, any assembler people here that know how an unsigned "branch if higher than" test is performed on atmega 328 at that level? Just curious, not that I will dabble in atmega assembler for a good while yet.