折耳布偶 发表于 2023-6-3 22:40:17

关于进制转换

请问图中的数字加减为什么从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。
页: [1]
查看完整版本: 关于进制转换