main(){ short i = -1; printf(“%d,%o,%x,%u\n“, i, i, i, i); }

代码如下:

#include <stdio.h>
main(){
	short i = -1;
	printf("%d,%o,%x,%u\n", i, i, i, i);
}

1.-1用8进制或16进制表示都是-1;

2.但在计算机内部,占用1字节空间的情况下(字节型),-1的2进制表示为:原码[-1]=10000001;反码为:[-1]=11111110;补码为[-1]=11111111.而计算机内部数值都是以补码的形式进行标识,若以8进制表示就是3ff;16进制为ff 若将-1看成整型,那么-1的补码为1111111111111111;8进制为177777;16进制为ffff

3.所以short i=-1
原码:1000 0000 0000 0001
反码:1111 1111 1111 1110(符号位不变其余按位取反)
补码:1111 1111 1111 1111(反码+1)

八进制:1 111 111 111 111 111 (177777)
十六进制:1111 1111 1111 1111 (ffff)

dec=-1;oct=177777;hex=ffff;unsigned=2^16-1=65535;

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值