关于C语言,一共三个问题,回答对者可以加分,

王朝知道·作者佚名  2012-02-23
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

第一个问题,unsigned int a=65535,然后printf("a=%d",a)

显示的是-1,我想问一下换算方式,一定要些换算方式,最好怎么补码的说一下

第二个问题,在格式输出函数里面有这样的printf("%7.2d,%5.3d....")

这是什么意思啊,书上写的%m.ns是什么意思啊,M代表什么,N代表什么

第三个问题,我刚学到了程序设计,我想问一下各位老鹰们,C语言那些不是很重要,那些比较重要,比如单精度float是否经常用到,而且我初中没有上完,所以数学不好,想问一下这个重要么,我是一个非常努力并且有上进的,希望各位老鹰们能够指点我这个菜鸟,谢谢了

參考答案:

the first one: int存储空间只占用两个字节即16个二进制码,[signed]用最高位存放符号,0正1负,所以数值范围-32768(2的15次幂)-32767,unsigned 16个二进制位全用来存放整数,所以范围是0-65535(2的16次幂减1)。因此相应的[signed]来储存的-1(由补码来实现,1的二进制码0000000000000001,15个0是用来占位的,相应的不码为1111111111111110,即0换1,1换0,在将补码加1),二进制码为1111111111111111;在unsigned中,16个1表示的是该类型存放的最大的数65535,计算机在还原时根据不同类型采用不同方式,前者按照叙述的逆运算求其二进制原码,后者本身就是存放数值的原码,无需转换。

the second one: %d输出的整形,这里.2是无意义的,不起作用的。小数点前的数字表示输出宽度,小与实际占用的位数时按实际宽度输出,多了在左边填充空格(右对齐),另一个表示保留小数位数,按四舍五入规则保留。

the third one: 学什么只在于学力——学习能力,而非学历——学习经历!加油吧!

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航