请问若整型数据int占两字节,数据取值范围怎么算的?
请告诉我原码,反码,补码分别是啥。谢谢啊
C语言。。。 展开
1B(byte,字节)= 8 bit
2B(byte,字节)=16bit
16bit代表可以储存的最大数为2^16=65536
若不考虑符号问题,那么可以储存0-65536个数。
考虑符号问题,二进制第一位为符号位,则储存的最大数为2^15=32768
0不属于正数也不属于负数,所以有符号的情况下,储存的数字为-32768——+32767
扩展资料:
字节(Byte )是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位的字节,即它包含八位的二进制数。
ASCII码:一个英文字母(不分大小写)占一个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数。换算为十进制,最小值-128,最大值127。如一个ASCII码就是一个字节。
UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节。
Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点。
常用的单位换算:
1KB=1024B;1MB=1024KB=1024×1024B
1B(byte,字节)= 8 bit
1KB(Kilobyte,千字节)=1024B= 2^10 B
1MB(Megabyte,兆字节,百万字节,简称“兆”)=1024KB= 2^20 B
1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB= 2^30 B
1TB(Terabyte,万亿字节,太字节)=1024GB= 2^40 B
参考资料来源:百度百科-字节
推荐于2017-11-25 · 知道合伙人软件行家
2的16次方 = 65536 所以,无符号整型的取值范围是 0 - 65536
如果是有符号整数,由于要加个符号位,所以,取值范围:
2的15次方 = (+-)32768
又由于,二进制的第一位是用来表示正负号的,0表示正,1表示负。这里有一个问题:0本来既不是正数,也不是负数,但它占用了0000(十六进制0)的位置,因此有符号的整数类型范围中正数个数比负数少一个。
所以,带符号符号整型的取值范围是 -32768 - 32767
正负数,在计算机中,只是使用补码存放。
两字节,是 16 位二进制。
其代表的数字,共有 2^16 = 65536 个。
用其中的 1/2 代表负数,就是 32768 个负数。
那么,负数的范围,不就是从-1 到-32768 吗?
这就够了,不需要再做太多的推导。
------
正负数,在计算机中,只是使用补码存放。
如果从原码反码,来分析补码,这就困难了。
因为,原码和反码,最小,只能达到-32767。
根本就无法说明:补码最小是-32768。
如果符号位(第一位)为0(即正数)则反码补码都相同
否则反码是除符号位一外的其余数都变成相反的数(即0→1或1→0)
补码实在反码的基础上加1
2018-01-05
1个字节是8位,每位可以用0、1表示,所以,2个字节16位的整型数,最大可以表示的数字是:
2的16次方 = 65536 所以,无符号整型的取值范围是 0 - 65536
如果是有符号整数,由于要加个符号位,所以,取值范围:
2的15次方 = (+-)32768
又由于,二进制的第一位是用来表示正负号的,0表示正,1表示负。这里有一个问题:0本来既不是正数,也不是负数,但它占用了0000(十六进制0)的位置,因此有符号的整数类型范围中正数个数比负数少一个。
所以,带符号符号整型的取值范围是 -32768 - 32767