找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 934|回复: 9
收起左侧

C语言char类型取值范围疑问

[复制链接]
ID:491577 发表于 2023-12-24 23:20 | 显示全部楼层 |阅读模式
C语言char类型取值范围是:-128~127;最高位是符号,剩下7位表示数值,最小值应该是B11111111,也就是-127,请问-128怎么用8位二进制表示?
回复

使用道具 举报

ID:1102798 发表于 2023-12-25 00:04 | 显示全部楼层
-128在8位二进制中可以用B10000000表示。
回复

使用道具 举报

ID:235200 发表于 2023-12-25 01:10 | 显示全部楼层
这是计算机里的表示方法,数据用补码表示,正数的补码与原码相同,负数的补码用反码加1来表示
回复

使用道具 举报

ID:235200 发表于 2023-12-25 01:19 | 显示全部楼层
-127在计算机中表示为 原码是11111111,反码是10000000,补码是10000001,而-1的补码是11111111,这都是负数,0用00000000表示,还有1个-0即10000000(实际上不能认为是0),所以就认为是-128
回复

使用道具 举报

ID:1106235 发表于 2023-12-25 18:19 | 显示全部楼层
在大多数现代系统上,char 类型通常被视为一个有符号的8位整数类型,这意味着它的取值范围是 -128 到 127。这是因为在ASCII码中,-128到127的码值用于表示常见的字符和符号。  但是,值得注意的是,C语言标准并没有规定 char 类型必须是有符号的。在一些系统或编译器上,char 类型可能是无符号的,这意味着其取值范围是 0 到 255。
回复

使用道具 举报

ID:883242 发表于 2023-12-26 13:18 | 显示全部楼层
chqqppbb 发表于 2023-12-25 18:19
在大多数现代系统上,char 类型通常被视为一个有符号的8位整数类型,这意味着它的取值范围是 -128 到 127。 ...

IAR可以在编译选项那里选择plain char是signed还是unsigned。
回复

使用道具 举报

ID:235200 发表于 2023-12-26 13:38 | 显示全部楼层
Hephaestus 发表于 2023-12-26 13:18
IAR可以在编译选项那里选择plain char是signed还是unsigned。

默认是signed
回复

使用道具 举报

ID:1106445 发表于 2023-12-26 14:05 | 显示全部楼层
在 C 语言中,char 类型确实可以存储从 -128 到 127 的值,这是因为它通常是 8 位的,采用二进制补码形式表示整数。在补码表示法中,最高位也是符号位,但是 -128 的二进制表示不是 B11111111。实际上,B11111111 在补码表示法中对应的是 -1。  在补码表示法中,-128 的二进制表示是 B10000000。这是因为补码系统的设计允许一个额外的负数的表示。在 8 位系统中,+127 的补码是 01111111,而 -128 则是 10000000。这种表示法的优势在于加法和减法可以使用相同的电路,而且不存在正零和负零的区别,只有一个零值 00000000。
回复

使用道具 举报

ID:1106423 发表于 2023-12-26 16:47 | 显示全部楼层
对于负数,计算机内部使用的是二进制补码表示法。在补码表示法中,负数的表示方法是对其绝对值的二进制表示进行按位取反(得到反码),然后再加1。例如,要表示-128,我们首先取128的二进制表示(即10000000),然后进行按位取反得到01111111,最后再加1得到10000000。所以,-128在8位二进制中的表示就是10000000
回复

使用道具 举报

ID:1106423 发表于 2023-12-26 16:51 | 显示全部楼层
在MPLAB X IDE 5.45和XC16编译器中,如果在汇编代码中使用了软件浮点数乘法,而链接时找不到浮点数库,可以通过以下步骤进行设置:

1. 首先,确保已经包含了所需的浮点数库。在XC16编译器中,通常使用`libm`库来支持软件浮点运算。

2. 接下来,需要在MPLAB X IDE中的项目设置中指定链接器可以找到这些库。这通常涉及到在项目属性或链接器设置中添加库的路径和名称。

3. 在MPLAB X IDE中,您可以通过以下步骤找到链接器设置:
   - 选择项目菜单下的“属性”选项。
   - 在弹出的窗口中,选择“XC16 Linker”选项。
   - 在该选项卡中,您可以找到“库搜索路径”和“库”选项,您可以在这里添加所需的浮点数库路径和名称。

通过上述步骤,您可以在MPLAB X IDE中的项目设置中指定链接器可以找到所需的浮点数库,从而解决链接时找不到浮点数库的问题。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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