ksdf.net
当前位置:首页>>关于C语言,请问常量-012和65535LU是不是合法?的资料>>

C语言,请问常量-012和65535LU是不是合法?

012是八进制数,不允许加负号的,不合法 65535LU合法,是无符号长整型常量

65536是2的16次方。无符号整型变量int大小是4字节也就是16bit(位),故可以表示16位2进制数(共2的16次方个也就是65536个),即可从0000000000000000B(十进制0)表示到1111111111111111B(十进制65535)。 如有任何问题,欢迎追问~

因为你把a定义成了unsigned short 类型,-1的补码是1111111111111111,把-1赋值给a,而a又因为是unsigned short 类型,从而不能存放负数,所以此时最高位的一不在表示负号,而是代表数值,所以就变成了65535,如果你把a定义为int类型,就会输出-...

-1, 在内存中按补码存储为二进制的1111 1111 1111 1111. 所以,按无符号数显示就是65535. 这个题的打印结果是:-1, 65535

计算机中的数 对应的二进制第一位在有符号时,1为负,0为正 所以-1的首位是1 再者负数的存储是不用原码的,而是补码 所以-1的%u就是65535了(1111 1111 1111 1111)

%u为以无符号十进制输出 无符号整数能表示的数范围是0-65535,即对应的二进制数0-1111111111111111(16个1)。 -1为有符号的整型,以1111111111111111(16个1)的二进制数存储。(-1二进制表示为10000000000000001,负数在计算机中用反码表示,...

不对吧,-1如果是整型应该输出4294967295,如果是浮点型应该输出0

C 语言中 unsigned int 是16位的 二进制 1111 1111 1111 1111 = 十进制 65535 2的16次方65536 的2进制表示要17位 1 0000 0000 0000 0000

这就是认为的限定范围了。 这个题目 要做的 就是16位的正整数 转为二进制输出。 所以 限定了65535 如果是32位, 那么就不需要做这个限定 不过要做一些改动 包括 数组r开到32个元素 m改为unsigned int 输入用%u

原码 10000000 00000000 11111111 11111111 反码 11111111 11111111 00000000 00000000 补码 11111111 11111111 00000000 00000001 其中最高位是符号位

网站首页 | 网站地图
All rights reserved Powered by www.ksdf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com