表示0512范围内的无符号整数,需要的二进制位数至少是多少位

表示0512范围内的无符号整数,需要的二进制位数至少是多少位... 表示0512范围内的无符号整数,需要的二进制位数至少是多少位 展开
 我来答
帐号已注销
高粉答主

2021-04-06 · 说的都是干货,快来关注
知道大有可为答主
回答量:1.8万
采纳率:74%
帮助的人:537万
展开全部
计算机里的数是用二进制表示的,最左边的这一位一般用来表示这个数是正数还是负数,这样的话这个数就是有符号整数。如果最左边这一位不用来表示正负,而是和后面的连在一起表示整数,那么就不能区分这个数是正还是负,就只能是正数,这就是无符号整数
计算机里的数是用二进制表示的,最左边的这一位一般用来表示这个数是正数还是负数,这样的话这个数就是有符号整数。如果最左边这一位不用来表示正负,而是和后面的连在一起表示整数,那么就不能区分这个数是正还是负,就只能是正数,这就是无符号整数。
有符号整数和无符号整数差别
int是有符号的。
unsigned才是无符号的。
它们所占的字节数其实是一样的,但是有符号的需要安排一个位置来表达我这个数值的符号是什么,因此它说能表示的绝对值就要比无符号的少一半。举个例子,我们有一个1个字节的整数(虽然这种类型不存在),那么无符号的就是这样:00000000~11111111 这个就是无符号的范围。
一个字节是8位。 下面有符号的,因为第一个位要用来表示符号,那么就只剩下7个位置可以用来表示数了0000000~1111111因为有符号所以还可以:-1111111~00000000。
编程
c语言无符号整数怎么定义
整形变量的分类: 基本整形:int 短整形:short int 长整形:long int对以上三类加上修饰符unsigned以指定是“无符号数”。如果加上修饰符singed,则指定的是“有符号数”,如果既不指定为signed也不指定是unsigned,则隐含为有符号(singed)。
无符号整数的陷阱
请问以下代码的输出?
unsigned int a=1,
int b=-2; int c=-2;
cout<<0)
cout<<
运行结果:
4294967294
4294967295
Press any key to continue
首先,程序的第一行,变量b和a一样,都是无符号整形,这是一个陷阱。
其次,在32位系统中,int的范围是-2147483648~+2147483647,而unsigned int的范围是0~4294967295。复数在无符号整形中用补码表示,所以b是4294967294。
第三,int默认为signed int,它与unsigned int运算时,结果被转换为unsigned int,所以a是4294967295。
nereus78e904
推荐于2017-11-22 · TA获得超过1.5万个赞
知道大有可为答主
回答量:5463
采纳率:90%
帮助的人:1977万
展开全部
0~511需要9位二进制码,而0~512的话就需要10位二进制码了。10位二进制码可以表示的无符号整数范围0~1023。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式