鱼C论坛

 找回密码
 立即注册
查看: 762|回复: 1

[已解决]关于进制转换

[复制链接]
发表于 2023-6-3 22:40:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问图中的数字加减为什么从10进制突然变成了2进制?在程序中默认的数字是10进制吗?
最佳答案
2023-6-3 22:44:45
本帖最后由 歌者文明清理员 于 2023-6-3 22:48 编辑

关于为什么数字加减从10进制变成2进制,这是因为在计算机中,所有的数字都是以二进制进行存储和运算的。所以在程序中默认的数字表示方式就是二进制。当我们使用10进制的数字时,计算机会将其转换成对应的二进制表示。

至于代码中变量a为何打印出来是144的问题,可以解释如下:

首先,变量b、c都是unsigned char类型,占用1个字节(8位),它们被初始化为0。

在第7行中,b-c-200的结果不会被赋值给任何变量,所以这一行代码并没有什么实际作用。

在第8行中,a-b+c的结果会被赋值给变量a。根据C语言运算符优先级规则,减法运算会先于加法运算进行。所以这里的a-(b+c)。而变量b、c的初始值都是0,所以b+c的结果也是0。因此这个表达式等价于a-0,即a本身的值不变。

最后,在第10行中,printf函数输出了变量a的值,由于a的初始值为0,所以输出结果为0。

综上所述,代码中变量a的初始值为0,输出结果也为0。
屏幕截图 2023-06-03 223704.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-3 22:44:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 歌者文明清理员 于 2023-6-3 22:48 编辑

关于为什么数字加减从10进制变成2进制,这是因为在计算机中,所有的数字都是以二进制进行存储和运算的。所以在程序中默认的数字表示方式就是二进制。当我们使用10进制的数字时,计算机会将其转换成对应的二进制表示。

至于代码中变量a为何打印出来是144的问题,可以解释如下:

首先,变量b、c都是unsigned char类型,占用1个字节(8位),它们被初始化为0。

在第7行中,b-c-200的结果不会被赋值给任何变量,所以这一行代码并没有什么实际作用。

在第8行中,a-b+c的结果会被赋值给变量a。根据C语言运算符优先级规则,减法运算会先于加法运算进行。所以这里的a-(b+c)。而变量b、c的初始值都是0,所以b+c的结果也是0。因此这个表达式等价于a-0,即a本身的值不变。

最后,在第10行中,printf函数输出了变量a的值,由于a的初始值为0,所以输出结果为0。

综上所述,代码中变量a的初始值为0,输出结果也为0。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 10:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表