初识C语言|原码、反码、补码——码码不一样

初识C语言:原码、反码、补码,那些让我头大的“码”事儿

        嘿,各位亲爱的大一小伙伴们,你们有没有觉得,自从踏入了编程的世界,就仿佛进入了一个满是“码”的奇幻国度?今天,咱们就来聊聊C语言里的原码、反码、补码,这些让我一度怀疑人生的“神秘代码”。

        一开始听到这些名词,我心想:“天呀,这不是在拍科幻片吧?”但没办法,既然选择了编程这条路,再难也得硬着头皮上。

        原码,这家伙就像是咱们平时用的阿拉伯数字,简单明了。比如,5的原码就是00000101,一看就懂。

        反码呢,就有点像叛逆期的孩子,非得跟原码唱反调。正数的反码跟原码一模一样,但负数的反码,哎,那可真是一言难尽。你得把原码的符号位保持不变,其余各位取反才行。

       至于补码,这家伙简直就是编程界的“魔术师”。它在反码的基础上再加1,就像给叛逆的孩子一点小甜头,让他们变得听话起来。负数的补码就是这么来的,而且啊,补码还能让计算机在做加减法时更省心,是不是很神奇?

下面就让我们用几个实例来唠唠:

正数1

  • 原码:正数的原码就是其二进制表示,最高位为符号位(0表示正数),其余位表示数值。因此,正数1的8位二进制原码为00000001
  • 反码:正数的反码与其原码相同。所以,正数1的8位二进制反码也是00000001
  • 补码:正数的补码同样与其原码相同。因此,正数1的8位二进制补码是00000001

负数-1

  • 原码:负数的原码最高位为符号位(1表示负数),其余位表示数值的绝对值。因此,负数-1的8位二进制原码为10000001
  • 反码:负数的反码是将原码符号位保持不变,其余位取反(0变1,1变0)。所以,负数-1的8位二进制反码是11111110
  • 补码:负数的补码是在其反码的基础上加1。因此,负数-1的8位二进制补码是11111111

0

  • 原码:0的原码只有一种表示方式,即所有位都为0。8位二进制原码为00000000
  • 反码:0的反码同样只有一种表示方式,也是所有位都为0(或者可以理解为正0和负0的反码相同)。8位二进制反码为00000000。但值得注意的是,在计算机内部,有时为了区分+0和-0(尽管它们在数值上是相等的),负0的原码会表示为10000000,但其反码仍会回到00000000,因为反码计算中符号位不变,其余位取反后对于0来说没有变化。
  • 补码:0的补码只有一种表示方式,即所有位都为0。8位二进制补码为00000000。在计算机中,无论是正0还是负0,它们的补码都是相同的。

      说实话,刚开始学这些“码”的时候,我真是头晕脑胀,感觉自己的智商都被拉低了。但慢慢地,通过不断的练习和琢磨,我也开始觉得它们挺有意思的。

       总之,原码、反码、补码这些看似复杂的编程概念,其实背后都蕴含着深刻的逻辑和原理。只要咱们用心去学,就一定能够揭开它们的神秘面纱,掌握编程的精髓。

        所以啊,各位小伙伴们,咱可别被这些“码”给吓倒了。咱们一起加油,用幽默的心态去面对编程路上的每一个挑战吧!

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值