永发信息网

int a=65535,int b=-1,printf("%d,%o,%x,%u", a, a, a, a); printf("%d,%o,%x,%u", b,

答案:3  悬赏:50  手机版
解决时间 2021-04-05 15:43
int a=65535,int b=-1,printf("%d,%o,%x,%u", a, a, a, a); printf("%d,%o,%x,%u", b, b, b, b);结果
最佳答案
首先要搞清楚不同格式输出是怎么回事
格式字符 意 义
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀0)
x,X 以十六进制形式输出无符号整数(不输出前缀Ox)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
e,E 以指数形式输出单、双精度实数
g,G 以%f或%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
搞清楚了,就好解释了
第一:对于a=65535,其的二进制为111....1111(16个1),按%d输出,是有符号的,而111....1111(16个1)是-1的二进制(有符号),那么结果就是-1了,%u输出,无符号,结果就对了,111....1111(16个1)的十进制为65535,%o是按八进制输出,111....1111(16个1)的八进制为177777(不会转继续提问吧,查书也行),%x是按16进制输出,111....1111(16个1)的16进制为ffff,就是结果了;

第二:对于b=-1,上面说了,它的二进制也是一样的,为111....1111(16个1),解释上面一样

总结:对于此题,搞清楚每个格式输出的意义,还有就是数字在电脑中的存储形式,为二进制,要求会转换,转换的方法有很多,你去查下吧追问为什么65535的二进制为111....1111(16个1),111....1111(16个1)是-1的二进制,111....1111(16个1)的八进制为177777?有什么简便的方法算出来吗,谢谢追答他们的二进制是一样的,这是计算机的存储方式,正数是以原码存储,负数是以补码存储,就是显示的时候,你选的方式不同,结果就不同,对于111....1111(16个1)转换八进制,最简单的是,从低位开始,向高位每3位为一组,对应是十进制放在相应的位置上,例如111....1111(16个1),
1 111 111 111 111 111
1 7 7 7 7 7
这样就是177777了,其他的都一样,不相信,你可以试试
全部回答
这个啊,有符号的int型的范围是-32768~32767,无符号的是0~65535。有符号的int数是采用补码表示的,int型是2个字节16位,最高位是符号位,0表示正1表示负。从负数的补码得到真值时,将符号位之外的所有位取反后,再加个1,前面再加个负号得真值。65535的十六进制表示是ffff,即二进制的
int是16位有符号整型,正数在计算机中以原码方式存储,负数则用补码形式存储。
-1是负数,以补码形式存储,即0xffff
65535的原码也是0xffff
所以有这样的结果也就不奇怪了。
补码:保持符号位不变,其他位按位取反(即反码)再加一,即可得到该数的补码
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
迁移证地址是宿州市埇桥区人社局,如何落户?
含有相和脉的成语有哪些
编程中a[k++]是什么意思
11层楼房哪个楼层最好
北京市丰台区马家堡街道富卓苑社区居民委员会
I am happy.这句怎么翻译 我开心 这好像中文
我选的是B两个动词之间不是要加to的么
三相交流同步发电机使用220伏会损坏发电机吗
张翰在花儿与少年里开上坡竟然冒烟,真的是没
对联大全之贺60岁生日寿辰对联
淮安哪里能批发到生的东北粘玉米
糖醋溜排骨的做法,糖醋溜排骨怎么做好吃,糖
怎么样拔大蒜快
上课时 须端坐 发言时 先举手
– I rang you at about ten o’clock, but t
推荐资讯
下列调查方式合适的是A.为了解“嫦娥一号”卫
幻影车神印度原版台词,印度电影天生一对讲的
留学早申请(ED)到学校是必须去的吗?
多肉钱串怎么繁殖,肉肉植物钱串如何打理
怎样删除微信转账中我”最近转账的人”
为啥东四地区不能随意动土
名著阅读:(6分)【小题1】读名著,识人物。
两个能,一个能是竖着的,一个能是横着的。
红豆,黑豆,红枣,天麻,花生米煮1起孕妇能不能
对老婆的祝福语,给老婆收集祝福语
等电聚焦电泳的介绍
四英寸的手机多大,5.0英寸的手机长和宽各是多
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?