c语言中存储数据的解释

 我们看到十六进制是按照加法、减法进行的;

加减法都是按照十六进制计算的;只不过我们翻译成uchar或char的时候,我们理解的不同。

总结:

1)对于不需要补符号的情况(等字节的情况),只要十进制数在00-FF的表示范围内,而不管数据类型是有符号的还是无符号的,我们都能正确表示,

如 uchar ch = -5 , 我们可以 char mm = ch ; mm 此时为-5;

char  ch = 128,我们可以 char mm = ch ; 此时mm为128;

2)对于需要补符号的情况(少字节数转为多字节数的情况)以及超出了00-FF的表示范围后,我们可以使用“高减低加”原则及原数据符号情况来还原数据。

如,uchar ch = -5,    uint mm = ch,  此时 mm 为 251; int nn = ch; 此时nn为-5;

char  ch = 128,  uint mm = ch,此时mm为128; int nn =ch;此时nn为-128;

uchar ch = 257,uint mm = ch,此时mm为 1;  int nn = ch;此时nn为1;

3)数据类型只是表征了所占了字节数(数据位数)及如果要补符号位(少字节数转位多字节数情况)时表示所补符号位是0还是1.跟本身存储的数据无关。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值