无符号类型赋值负数,以及求绝对值

Posted 郭志凯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无符号类型赋值负数,以及求绝对值相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <cmath>

int main()
{
    unsigned char i = 0 ;

    i = -1 ;
    std::cout<<"i="<<(int)i<<std::endl;

    i = -2 ;
    std::cout<<"i="<<(int)i<<std::endl;

    i = -3 ;
    std::cout<<"i="<<(int)i<<std::endl;

    i = 256 ;
    std::cout<<"i="<<(int)i<<std::endl;

    i = 257 ;
    std::cout<<"i="<<(int)i<<std::endl;

    i = 258 ;
    std::cout<<"i="<<(int)i<<std::endl;

    std::cout<<"---------------------------"<<std::endl;

    std::cout<<(int)std::abs(-100)<<std::endl;

    std::cout<<std::abs(-100.0)<<std::endl;

    std::cout<<std::abs(-100.0D)<<std::endl;

    return 0;
}

 具体原理涉及原码->反码->补码

 

求绝对值函数abs()有几个重载,传入int,返回值不是int,需要强制转换

 

以上是关于无符号类型赋值负数,以及求绝对值的主要内容,如果未能解决你的问题,请参考以下文章

负数赋值给无符号数的陷阱[转]

c语言无符号长整形赋值问题,在线等,求解答!!!

源码,反码以及补码

java怎么计算一个整数长度(不含负数符号)?

有符号数的范围

偶然在博客中见对百度一个面试题的探讨,写些自己的看法以及指出探讨中不对的观点:百度面试题:求绝对值最小的数 有一个已经排序的数组(升序),数组中可能有正数负数或0,求数组中元素的绝对值最小的(