这几天在重看C语言程序设计,嗯,感觉第一遍看的还是不够彻底。
貌似是练习2-1,叫你查看unsigned的范围。
当然可以在limit里面查看,但用程序来查看应也不难。
一开始我是这样想的,以unsigned char为例:
    unsigned char unch=1;
    unsigned 
char temp = 0;
    
while(temp != unch)
    
{
        temp 
= unch;
        unch 
= (unch << 1+ 1;
    }

    printf(
"%u", temp);
可以看出来,没问题。
后来想想不用这么麻烦,用~就行了。
    unsigned char temp = 0;
    temp 
= ~temp;
    printf(
"%u", temp);
一开始我是这样写的
    unsigned char temp = 0;
    printf(
"%u"~temp);
直接在printf里面取反,结果并不是unsigned 的上限,变成了unsigned int的上限,看来是先自动进行了强制转换。