char Set / Bitstring上的减号操作

时间:2014-02-01 12:08:26

标签: c character-encoding binary set bit

typedef unsigned char Set;    
    Set s1,s2;
s1 = 0xda; 
PRINT(s1);
printf("%d\n", s1);

s2 = -s1;
printf("%d\n", s2);
PRINT(s2);

// PRINT显示二进制输出

我不明白这个输出的原因 - >

11011010

218

38

00100110

如何在s2上保存s1的协商(显然为空)将218改为38?!

1 个答案:

答案 0 :(得分:0)

我确信我不是唯一一个第一眼看不到它的人,所以我会尝试自己回答。

如果你这样做:

  

s2 = 256-s1;

或者这个:

  

s2 = 0-s1;

而不是

  

s2 = -s1;

你会发现它仍然是相同的结果。因此,如果你按我在问题中的方式分配它,你就要考虑隐式计算。