0xffffffff是多少?

来源:互联网 发布:什么是数据库应用系统 编辑:程序博客网 时间:2024/04/29 11:06
  (1)正数的补码与原码相同;  (2)负数的符号位为1,其余位为该数绝对值的原码按位取反,然后整个数加1,即为其补码。
   (总的来说:补码=原码取反+1,只不过负数带有符号位需特殊考虑。。。)---------------------------------------------------------------------------------------------------------------------------------0xffffffff是多少?0xffffffff表示的是一个十六进制数 1.将其转换为十进制数     0xffffffff=16x10^7+16x10^6+...+16x10^0=4294967295 2.将其转换为二进制数     十六进制转换为二进制就是直接把每位转换成二进制就可以了     f(15)变成二进制:1111,则     0xffffffff = 1111 1111 1111 1111 1111 1111 1111 1111 (8个F的二进制形式, 一个F占4个字节 )     即32位数都是1的二进制数0x代表16进制,后面是数字,十进制是4294967295
#include <stdio.h>int main(){int i =0xffffffff;unsigned int j = 0xffffffff;printf("i: %u  %d\n",i ,i);printf("j: %u  %d\n",j ,j);    printf("-1: %u\n",-1); return 0;}/*我擦,终于想通了带符号的int变量i当以“%u”(无符号格式)输出时,把最高位符号位给算进去了所以 i和j “%u”的相同。-1的补码,计算机中符号数以补码形式存放即: 1111 1111 1111 1111 1111 1111 1111 1111 (32位) 当以无符号输出时也是: 4294967295*/

有图有真相:


int、unsigned int、long int、long long 类型的最大值和最小值:
#include <limits>#include <iostream>using namespace std;int main (){  cout<< numeric_limits<int>::max() << endl;  cout<< numeric_limits<unsigned>::max() <<endl;   cout<< numeric_limits<long int>::max() <<endl;   cout<< numeric_limits<long long>::max() <<endl;  cout<<"-----------------------------"<<endl;  cout<< numeric_limits<int>::min() << endl;  cout<< numeric_limits<unsigned>::min() <<endl;   cout<< numeric_limits<long int>::min() <<endl;   cout<< numeric_limits<long long>::min() <<endl;  return 0;} 


原创粉丝点击