当前位置:大问百书>百科知识>C语言的un来自signed int到底是什么意思

C语言的un来自signed int到底是什么意思

2024-10-18 14:45:36 编辑:zane 浏览量:572

C语言的un来自signed int到底是什么意思

的有关信息介绍如下:

问题补充说明:搞清unsigned int底我做面程序同数字打进看输同效:#include "stdio.h"main(){ unsigned short a=32768; unsigned short b=32767; unsigned short c=32769; unsigned short d=-32768; unsigned short e=-32767; unsigned short f=-32769; unsigned short g=-1; unsigned short h=-2; unsigned short i=-3; printf("%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n",a,b,c,d,e,f,g,h,i); getch();}运行结:327683276732769327683276932767655356553465533Press any key to continue没看规律请朋友解释谢谢

C语言的un来自signed int到底是什么意思

不管是unsigned还是signed,同类型宽度都是一样,360问答short占2字问业松子袁节共16个位,无符号可以完十波求免效所前进全利用这16个位来表示数字,就有2^16=65536中可能,可以表示0~65535,而有符号类型要用到最高位表示符号,2^苏防队粒愿叫主括春15=32768,所以能表示-32768~32767,为了不出现两个0的情况,+0和-0,底层实现一识处月创独费质乱假反站般是用2的补码来表示负数,一个负数的二进制表示,可以由这个负数的绝对值的二进制表现形式取反再加1得到,

比如16位short值-1,绝对值是1,二进制协件长表示为:

0000000000000001

取反

1111111111111110+1=

1111111111111111

而正好这个数也是无符号型最大值65535的表现形式,所以对于这个二进总无结机宣制,是解释为65535还或敏裤是拿链-1,那就是printf里格式化的衫简功能了。

版权声明:文章由 大问百书 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.dawenbaishu.com/article/148880.html
热门文章