c语言数据基础?
首先数据在内存中是以二进制形式存放的,无符号的变量只能存放不带符号的整数,且实际上是以补码表示的。所以相当于求出它的补码就行了。无符号基本整形是16位的,取值范围为0至65535正数的原码和补码相同;负数的不一样。 现求负数补码取-1的绝对值1 二进制0000000000000001(1的原码)取反 1111111111111110再加1得-1的补码 1111111111111111即65535有符号的最左边的那一位数是表示符号的,0为正,1为负;无符号的代表数字。 整形变量的最大允许值为32767如果超过又会从头...全部
首先数据在内存中是以二进制形式存放的,无符号的变量只能存放不带符号的整数,且实际上是以补码表示的。所以相当于求出它的补码就行了。无符号基本整形是16位的,取值范围为0至65535正数的原码和补码相同;负数的不一样。
现求负数补码取-1的绝对值1 二进制0000000000000001(1的原码)取反 1111111111111110再加1得-1的补码 1111111111111111即65535有符号的最左边的那一位数是表示符号的,0为正,1为负;无符号的代表数字。
整形变量的最大允许值为32767如果超过又会从头开始即-32768这叫溢出。收起