第2章实验补充C语言中如何计算补码

本文介绍了C语言中计算补码的方法,包括正数和负数的补码转换,并通过实验验证了整型字面量的处理方式以及在赋值过程中可能出现的‘矛盾’现象。通过对不同赋值情况的分析,展示了变量存储的实际状态及其可能产生的结果。
摘要由CSDN通过智能技术生成
 

实验目的:

理解C语言中如何计算补码,掌握“矛盾”赋值时如何处理数据。

实验步骤:

1.验证没有赋值的变量的值是“随机的”。

1.1在VC6.0没有赋值的整型变量其存储单元中每个字节都是0xcc。如程序

#include <stdio.h>

void main()

{

     long i;

        short j;

        printf("%lx,%hx\n", i, j);

}

的输出为:cccccccc,cccc。

但是这只是vc6.0为了方便观测数据主动为程序中的变量设置的状态。

1.2在Win-TC可以清楚地看出,没有赋值的变量的值是“随机的”。

2.计算机中处理整型字面量的方式。

2.1计算机中存储整数的补码形式,因此遇到整型字面量时会首先将其转换为补码形式,但是需注意其转换方法。

遇到正数,正数的补码形式与原码的相同,直接将其转换成二进制形式即可。如65535将被转换成1111 1111 1111 1111或(认为其类型是长整型)被转换成0000 0000 0000 0000 1111 1111 1111 1111(0xffff);0x80000001将被转换成1000 0000 0000 0000 0000 0000 0000 0001(0x80000001)。

遇到负数,先忽略负号将其转换成二进制形式,再取反,最后加1即得到了补码形式。如-6

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值