莫熙儿微博号叫什么:数大小及符号数(网上收集)
来源:百度文库 编辑:九乡新闻网 时间:2024/05/03 21:37:56
sqlserver里面创建表时用到了int型数据类型,长度只能为4,我就以为最大可以表示为9999,罪过啊。因为受char类型的影响,char的长度如果为4,则我只能输入'abcd','qwer'这么长,再长的会被截断。其实int中的4代表4个字节,1个字节是8个二进制串,于是实际上int型可以表示的最大整数就是
0111 1111 1111 1111 1111 1111 1111 1111
共32位,最前面的一位是符号位,计算机中通常用0代表整数,1代表负数,于是这个数转换成10进制就是
2^0 + 2^1 + 2^2 + ……… 2^31 = 2^32 - 1 = 2147483647
于是,我又想当然的认为最小的负整数就一定是
1111 1111 1111 1111 1111 1111 1111 1111
我们知道,负数在计算机中是以补码的形式存储的,而负数的补码= 其绝对值的原码取反 + 1,我们可以反向来推算嘛
先减1
1111 1111 1111 1111 1111 1111 1111 1110
再取反
0000 0000 0000 0000 0000 0000 0000 0001
结果是这个很长看起来很小的数结果是-1,最大的负整数。那么int型能表示的最小的负整数到底是多少呢?暂时还不知道,但是有一点可以清楚的是,至少最前面一位是1,同时发现如果我1存在的越多,好像越大,那么最小的负数就是1最少的那一个了
1000 0000 0000 0000 0000 0000 0000 0001
这样我先减去1,再取反以后就是
0111 1111 1111 1111 1111 1111 1111 1111
于是我又得出int型可表示的最小负数就是-2147483647,但是,实际上,我们知道人们规定了int型最小的负整数是-2147483648,确实比上面还小1,2进制就是
1000 0000 0000 0000 0000 0000 0000 0000
很奇怪的吧,但是这是规定,就像是1+1=2一样,其实,自己想想,蛮有道理的,因为本来0和-0在计算机中用2进制存储就应该不一样,按照我们讲的,应该是
0-> 0000 0000 0000 0000 0000 0000 0000 0000
-0-> 1000 0000 0000 0000 0000 0000 0000 0000
但是人家就是规定了0和-0我都存储为0,霸道吧。可能是想让数据两端保持个数一致吧,本来这样多好
…… -3 -2 -1 -0] [0 1 2 3 ……
但是现在中间的两个0合并了,而我们对
1000 0000 0000 0000 0000 0000 0000 0000
减1,取反以后得到
1000 0000 0000 0000 0000 0000 0000 0000
还是他本身,鉴于这种特性,就把它作为最小的int型可以表示的整数,并且规定其值为-2147483648。而且这样也可以解释下面的程序了 public static void Main()
...{
int a =-2147483648;
int b =2147483647;
a--;
b++;
Console.WriteLine(a);// print:2147483647
Console.WriteLine(b);// print:-2147483648
}先来看a,2进制为
1000 0000 0000 0000 0000 0000 0000 0000
a-1就等于a+(-1),-1的2进制为
1111 1111 1111 1111 1111 1111 1111 1111
两者相加为
1000 0000 0000 0000 0000 0000 0000 0000
+ 1111 1111 1111 1111 1111 1111 1111 1111
------------------------------------------------------------------------------------------
10111 1111 1111 1111 1111 1111 1111 1111
而实际上最前面的一位1已经超出了本身int型的范围,所以一般就会被自动截取掉了,而一般的编译器也不会报错,我指的是象我那样写int a =-2147483648;a--;当然,如果你直接int a =-2147483648-1;的话一般编译的时候就会报错的。最后得到的结果就是
0111 1111 1111 1111 1111 1111 1111 1111
成了2147483647,b可以同理计算出来。
似乎就是这么个事情。这样你也可以知道float的取值范围了。以上int型均指在32位机上的结果
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zabcd117/archive/2007/07/12/1687413.aspx
0111 1111 1111 1111 1111 1111 1111 1111
共32位,最前面的一位是符号位,计算机中通常用0代表整数,1代表负数,于是这个数转换成10进制就是
2^0 + 2^1 + 2^2 + ……… 2^31 = 2^32 - 1 = 2147483647
于是,我又想当然的认为最小的负整数就一定是
1111 1111 1111 1111 1111 1111 1111 1111
我们知道,负数在计算机中是以补码的形式存储的,而负数的补码= 其绝对值的原码取反 + 1,我们可以反向来推算嘛
先减1
1111 1111 1111 1111 1111 1111 1111 1110
再取反
0000 0000 0000 0000 0000 0000 0000 0001
结果是这个很长看起来很小的数结果是-1,最大的负整数。那么int型能表示的最小的负整数到底是多少呢?暂时还不知道,但是有一点可以清楚的是,至少最前面一位是1,同时发现如果我1存在的越多,好像越大,那么最小的负数就是1最少的那一个了
1000 0000 0000 0000 0000 0000 0000 0001
这样我先减去1,再取反以后就是
0111 1111 1111 1111 1111 1111 1111 1111
于是我又得出int型可表示的最小负数就是-2147483647,但是,实际上,我们知道人们规定了int型最小的负整数是-2147483648,确实比上面还小1,2进制就是
1000 0000 0000 0000 0000 0000 0000 0000
很奇怪的吧,但是这是规定,就像是1+1=2一样,其实,自己想想,蛮有道理的,因为本来0和-0在计算机中用2进制存储就应该不一样,按照我们讲的,应该是
0-> 0000 0000 0000 0000 0000 0000 0000 0000
-0-> 1000 0000 0000 0000 0000 0000 0000 0000
但是人家就是规定了0和-0我都存储为0,霸道吧。可能是想让数据两端保持个数一致吧,本来这样多好
…… -3 -2 -1 -0] [0 1 2 3 ……
但是现在中间的两个0合并了,而我们对
1000 0000 0000 0000 0000 0000 0000 0000
减1,取反以后得到
1000 0000 0000 0000 0000 0000 0000 0000
还是他本身,鉴于这种特性,就把它作为最小的int型可以表示的整数,并且规定其值为-2147483648。而且这样也可以解释下面的程序了 public static void Main()
...{
int a =-2147483648;
int b =2147483647;
a--;
b++;
Console.WriteLine(a);// print:2147483647
Console.WriteLine(b);// print:-2147483648
}先来看a,2进制为
1000 0000 0000 0000 0000 0000 0000 0000
a-1就等于a+(-1),-1的2进制为
1111 1111 1111 1111 1111 1111 1111 1111
两者相加为
1000 0000 0000 0000 0000 0000 0000 0000
+ 1111 1111 1111 1111 1111 1111 1111 1111
------------------------------------------------------------------------------------------
10111 1111 1111 1111 1111 1111 1111 1111
而实际上最前面的一位1已经超出了本身int型的范围,所以一般就会被自动截取掉了,而一般的编译器也不会报错,我指的是象我那样写int a =-2147483648;a--;当然,如果你直接int a =-2147483648-1;的话一般编译的时候就会报错的。最后得到的结果就是
0111 1111 1111 1111 1111 1111 1111 1111
成了2147483647,b可以同理计算出来。
似乎就是这么个事情。这样你也可以知道float的取值范围了。以上int型均指在32位机上的结果
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zabcd117/archive/2007/07/12/1687413.aspx
数大小及符号数(网上收集)
排行及兄弟姐妹数
第三课时 千以内数的大小比较
第六课时 万以内数的大小比较
小学二年级奥数题:填数比大小
计算无符号数中二进制1的个数 - C
Word中分数及其他数学符号怎么打出来
符号、数据、信息、知识、智慧、精神--数图研究笔记
八卦象数配方及应用 (一,)
八卦象数配方及应用 (一)1
八卦象数配方及应用 (一)
试卷(数)
天使数字书)
异数(雪小禅)
命题(数)
日计划用数公里宽“金属渔网”收集太空垃圾
八卦象数配方及应用一
八卦象数配方及应用二
八卦象数配方及应用一
三年级奥数试题及答案
数几十种修法窍诀及心得汇集精华
电线平方数及直径换算方法
钢球公斤数及皮筋组合
统计数,估计数