长整型输出格式_整型和字符型是好兄弟(下)

虽然 整型和字符型经常吐槽实型来自金星,他们兄弟是来自火星的好兄弟,但好兄弟也有吵架的时候。请看下面的程序:

c803ecf5594539a834ee7c3a00800049.png

上面的程序中字符型和整型变量混合使用,输入的时候将12看作两个字符分别取值给变量ch2和num2;输出的时候都当作十进制整型。数字1的ASCII码是十进制49;数字2的 ASCII码是十进制50。但是num2输出的不是50。增加一个字符型变量ch3,将整型变量num2的值赋值给变量ch3,再输出ch3。编写程序并运行如下:

36b4e1de9d5fb7dd938f805c2b8c3cdf.png

上面的程序中,输出的变量num2的值是一个负数。将变量num2的值赋值给字符型变量ch3后,输出ch3,ch3的值是2的 ASCII码。为什么用格式输入函数以字符的形式获取的 2的 ASCII码存放在整型变量num2中后,发生了变化呢?其实计算机也很无奈,它表示,并没有变化。问题在于:整型变量占用4个字节的空间;字符型变量占用1个字节的空间。格式输入函数将 2的 ASCII码 存放在整型变量num2的低1个字节中,高位的3个字节并没有改变。将变量num2以十六进制形式输出,编写程序并运行如下:

85b16463f66b3b1010382b49293498e5.png

上面的程序中以十六进制形式输出num2。num2的最后一个字节存储的是数字2的 ASCII码,格式输入函数scanf获取了一个字节的数据给变量num2,其前3个字节的数据没有修改。 修改程序,将变量num2初始化为0,运行程序如下:

edc022fb55241500ac16b8241b7f4bfa.png

虽然整型和字符型是好兄弟,但是他们所占字节数不同。

f9131283a25920787d8be4ea15304545.png

b154099fdeab8bd0b021530a57562e4f.gif

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值