永发信息网

请问,Fortran中ichar的返回值为何会出现负数,字符的ASCii不是介于0~255吗?

答案:2  悬赏:40  手机版
解决时间 2021-11-29 21:14
  • 提问者网友:辞取
  • 2021-11-29 15:43
请问,Fortran中ichar的返回值为何会出现负数,字符的ASCii不是介于0~255吗?
最佳答案
  • 五星知识达人网友:不如潦草
  • 2021-11-29 16:40
其实计算机里表示的东西。是没有统一约定的。

比如对于1个字节,8位。如果是 10000000
ASCII 码是 €。你说他是 128 也行。
而如果当做整数来解释,就是 -128。

所以,计算机中一个数,可以按多种方式去解释。你可以解释成整数,无符号的整数,字符(ASCII或者Unicode编码),也可以按浮点数去解释。浮点数还可以是IBM浮点数,IEEE浮点数。big-endian 或者 little-endian。

就好像 me 一样。按英文解释,意思是 我。按汉语拼音解释,可能是 么,麽,庅,嚰....等等。

所以,数据本身没有任何含义。在于你怎么解释。

回到你的问题:图片里的色彩,是 00 - FF(十六进制)之间的数。代表颜色时,它不规定正负。
这个例子强制赋值给一个 char 变量。char 变量也没有正负。但如果按照整数(code)来解释,就有正负了。追问谢谢!可是还有一点不明,字符的ASCii码既然规定介于0~255,那么ichar的返回值应该都是0~255,怎么会出现负数?难道ichar的功能是直接将每个字符对应的二进制数据强制转换成整型?您有相关的资料推荐一下吗?这一块知识我想补一下~多谢啦追答不强制转换成整数,还能是什么呢?

Fortran 没有无符号整数,这种数据类型。来自:求助得到的回答
全部回答
  • 1楼网友:杯酒困英雄
  • 2021-11-29 16:47
事实上,电脑的东西。目前尚无统一的协议。

例如,一个字节,8。 10000000
的ASCII码€。你说他是128。
解释为整数,如果是-128。

所以,一些在计算机中,来解释的各种方式。你可以理解为一个整数,无符号整数字符(ASCII或Unicode编码),根据一个浮点数来解释。浮点数也可以IBM浮点数字,IEEE浮点数。 big-endian或little-endian的。

像我这样的。由英国的解释,我的意思。按汉语拼音解释说,可能是什么,什么,我,我......等。

因此,数据本身并没有任何意义。是,你如何解释。

回到你的问题:在画面的颜色,是00 - FF(十六进制)之间的一个数字。代表色,它不预定的正的或负的。
这种情况下,强制分配给一个char变量。 char变量,也没有正面和负面的。但是,如果按照一个整数(代码)来解释,有正面和负面的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯