#include <iostream> #include <assert.h> #include <algorithm> #include <hash_set> #include <vector> #include <string> #include <assert.h> #include <list> using namespace std;
#define abss(x) (( 1-((((x)>>(sizeof(x)*8-1))&1)<<1))*(x)) int main() { int a=-9; int b=8; int c=0; int d=-100; cout<<"int: "<<endl; cout<<a<<" "<<abss(a)<<endl; cout<<b<<" "<<abss(b)<<endl; cout<<c<<" "<<abss(c)<<endl; cout<<d<<" "<<abss(d)<<endl; long long xx=-1999; cout<<endl<<"long long "<<endl<<xx<<" "<<abss(xx)<<endl; char ch=a+128; cout<<endl<<"char "<<endl<&
取整数绝对值的宏定义
最新推荐文章于 2021-11-26 20:06:55 发布
本文介绍了一个宏定义方法,旨在兼容各种宽度的整数类型,并处理右移操作后的符号问题,通过sizeof确保操作的整数宽度,同时使用与1的操作来确保在右移后保留正确的符号。
摘要由CSDN通过智能技术生成