C语言中基本数据类型细节

期中计组考完后,虽然成绩惨不忍睹,但暴露了一些一直以来不懂但又没暴露出来的问题,在此总结。

  1. 补码

    • Select the two’s complement negation of the following binary value: 00110011:
      从以下选项选择00110011的two’s complement negation(不知咋翻)
      (a) 11001100
      (b) 11001101
      (c) 10110011
      (d) 11110011
      看到这里,了解补码的人会疑惑,我们一般认为的补码(two’s complement)是以下这两条规则:

      1. 正数补码是其本身
      2. 负数的补码是其本身取反(除去符号位)加1,例如如下步骤
        0x100…..0010(-2) -> 0x111…1101 -> 0x111…1110
    • 但本题的two’s complement negation显然不是如上的意思,我可以翻译为-00110011 = ?(没错就是取负数)

      C语言在计算机内是怎么取负呢?我认为是取反(包括符号位)再加1,就拿此题为例:
      00110011 -> 11001100 -> 11001101,所以选b。
      由此可以看出,c语言中取负操作无论正负都是取反(包括符号位)再加1

    • 下面我们再看一个例子:
      In two’s compliment, what is -TMin-1?
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值