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)。 如有任何问题,欢迎追问~

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

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

无符号不是说把负号去掉,而是把最高位的1不看作负号。-1存储的形式为1111 1111 1111 1111(补码),最高位1不看作负号,计算得65535。 1的存储是0000 0000 0000 0001正数的补码和原码是一样的,不变

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

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

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

编译没问题,按照你的程序,65535就是表示-1

负数在计算机中以补码形式存储, 而-1的补码计算如下: 1. -1对应的真值, 即其绝对值: 1 2. 对其真值取反, 即2进制取反: 1111 1111 1111 1110 3. 对2所得结果加1: 1111 1111 1111 1111 = 0xFFFF = 65535

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