一道题引发的。。。。。

 输出结果是9。

整型数据两个字节,字符型数据一个字节,怎么把整型数据赋给字符型变量?

解释:直接把整形数据的低8位送到char 型变量。

 

数值在计算机内存中是怎么存储的呢?

1.1.0   位  &   位模式  & 字节

   位是存储在计算机中的最小数据单位:它是 0或 1。

   为了表示数据的不同类型,应该使用位模式,它是一个序列,有时也称为位流。计算机存储器仅仅将数据以位模式存储。至于它所存储的位模式表示哪种类型,计算机并不知道。当数据输入计算机时,它们被编码,当呈现给用户时,它们被解码。

   通常长度为8的位模式被称为字节。

1.1.1    数据在内存中的存放形式

    数据在内存中是以二进制形式存放的。

    实际上数值是以补码表示的。

    (1)TurboC2.0一个整形数据变量在内存中分配2个字节的存储单元(不同的编译系统为整形数据分配的字节数是不相同的)。

    (2)一个浮点型数据一般在内存中占4个字节。

    (3)将一个字符型常量放到一个字符型变量中,实际上并不是把该字符本身放到内存单元中,而是将该字符的对应的ASCII码放到存储单元中。既然内存中,字符数据以ASCII码存储,它的存储形式和整数的存储形式类似。字符型数据和整形数据可以通用,一个字符型数据既可以以字符形式输出,也可以以整形数据输出。

1.2.0    关于赋值

1.2.1     字符型数据赋给整型变量

     上面的题目是将整形数据赋给字符型数据。如果将字符型数据赋给整型变量,由于字符只占一个字节,而整型占2个字节,因此将字符数据(8个二进制位)放到整型变量存储单元的低8位中。有两种情况 如下:.

     (1)如果所用系统将字符处理为无符号的字符类型,则将字符的8位放到整型变量低8位中,高8位补0。

     (2)如果所用系统将字符处理为带符号的,若字符最高位为0,则整型变量高8位补0;若字符最高位为1,则高8位全补1。这称为符号扩展,这样做的目的是是数值保持不变。

1.2.2    int /short/long 型数据赋给一个char 型变量

     只将其低8位原封不动的送到char 型变量。

 这是 董哥为了加深我的理解,改编的程序。

很遗憾,没有懂额。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值