C语言里面无符号数怎么理解
4个回答
展开全部
是不是 unsign int a;?
可以这样来理解 b=-1;
a=b
a=二进制(11111111)=255
及把最左边的符号位也变为数值中了
可以这样来理解 b=-1;
a=b
a=二进制(11111111)=255
及把最左边的符号位也变为数值中了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是没有正负号,在以2进制储存时第一位不需要表示符号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在c语言中,数值是以补码表示的:
正数的补码和原码相同;
负数的补码:将该数的绝对值的二进制形式按位取反再加1。
例如:
求-10的补码:
10的原码:
0000 0000 0000 1010
取反:
1111 1111 1111 0101
再加1,得-10的补码:
1111 1111 1111 0110
左面的第一位是表示符号的,正数为0,负数为1。
无符号型又可与三种类型匹配而构成:
无符号基本型:类型说明符为unsigned int或unsigned。
无符号短整型:类型说明符为unsigned short。
无符号长整型:类型说明符为unsigned long。
各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。
有符号整型变量int:最大表示32767
0111 1111 1111 1111
无符号整型变量unsigned:最大表示65535
1111 1111 1111 1111
正数的补码和原码相同;
负数的补码:将该数的绝对值的二进制形式按位取反再加1。
例如:
求-10的补码:
10的原码:
0000 0000 0000 1010
取反:
1111 1111 1111 0101
再加1,得-10的补码:
1111 1111 1111 0110
左面的第一位是表示符号的,正数为0,负数为1。
无符号型又可与三种类型匹配而构成:
无符号基本型:类型说明符为unsigned int或unsigned。
无符号短整型:类型说明符为unsigned short。
无符号长整型:类型说明符为unsigned long。
各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。
有符号整型变量int:最大表示32767
0111 1111 1111 1111
无符号整型变量unsigned:最大表示65535
1111 1111 1111 1111
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询