『大一』请问“字符本质是小整形”作何解释
『大一』请教“字符本质是小整形”作何解释?
课余看《C和指针》做些拓展的时候,读到这么一句话“字符本质是小整形。”有点困惑,去百度查了之后,更糊涂了!cha型r与ASII相关,占一个字节,而ASII转换为二进制数。int型占两个字节,直接转换成二进制数。char的二进制表现范围在int型的范围之内,所以”字符本质是小整形“。那么,照这么说,int型不也就是小double型了吗?
上述所说,可能存在严重错误,还请为我指出解惑!感谢!
------解决方案--------------------
其次,一个声明为char类型的对象,足以容纳任何基本执行字符集的成员,并且保证为非负值。
------------------------------------------>其次,一个声明为char类型的对象,足以容纳任何基本执行字符集的成员,当它保存的是基本执行字符集的成员时,保证为非负值。
------解决方案--------------------
说到底“字符本质是小整形”这种如果要说合理性也就是char是integer type而已,其它可以无视。
int型占两个字节更是经典胡扯。
现行ISO C规定:
1.有符号整数用原码反码补码之一表示,除了char等少数约定的类型外可以有padding;
2.int至少能表示得下32767,至于具体多大,没说;
3.一个字节的位数CHAR_BIT >= 8。
而大多数你碰得到的现实实现是这样的:补码表示;CHAR_BIT == 8;无padding;32位环境下sizeof(int) == 4(64位下不少还是一样)。
所以扯int两个字节的乱七八糟的玩意儿没什么参考价值。切记要尝试预估想要查证的资料的可靠性和权威性,不要乱投医。
另外,基本执行字符集也不见得是ASCII。主要的反例是EBCDIC。上来动辄扯ASCII跟char值的东西大多也就只能一笑了之了。
说实话就是C本身还好,ISO C算是公认的没被实现架空的规范(M$奇葩不论),也就谭×之类能骗骗小白。其它一些地方不靠谱的说法太多太乱了,大部分用户也未必需要搞清楚——也未必有机会搞清楚。比如关于reentrancy跟thread safety的定义涵盖,POSIX跟Qt文档使用的定义下的结论刚好相反。这时候还得搞清楚语境判断上下文再作结论。
所以10L赵老湿之类怎么放置play的正确姿势应该不难理解了吧。
课余看《C和指针》做些拓展的时候,读到这么一句话“字符本质是小整形。”有点困惑,去百度查了之后,更糊涂了!cha型r与ASII相关,占一个字节,而ASII转换为二进制数。int型占两个字节,直接转换成二进制数。char的二进制表现范围在int型的范围之内,所以”字符本质是小整形“。那么,照这么说,int型不也就是小double型了吗?
上述所说,可能存在严重错误,还请为我指出解惑!感谢!
------解决方案--------------------
其次,一个声明为char类型的对象,足以容纳任何基本执行字符集的成员,并且保证为非负值。
------------------------------------------>其次,一个声明为char类型的对象,足以容纳任何基本执行字符集的成员,当它保存的是基本执行字符集的成员时,保证为非负值。
------解决方案--------------------
说到底“字符本质是小整形”这种如果要说合理性也就是char是integer type而已,其它可以无视。
int型占两个字节更是经典胡扯。
现行ISO C规定:
1.有符号整数用原码反码补码之一表示,除了char等少数约定的类型外可以有padding;
2.int至少能表示得下32767,至于具体多大,没说;
3.一个字节的位数CHAR_BIT >= 8。
而大多数你碰得到的现实实现是这样的:补码表示;CHAR_BIT == 8;无padding;32位环境下sizeof(int) == 4(64位下不少还是一样)。
所以扯int两个字节的乱七八糟的玩意儿没什么参考价值。切记要尝试预估想要查证的资料的可靠性和权威性,不要乱投医。
另外,基本执行字符集也不见得是ASCII。主要的反例是EBCDIC。上来动辄扯ASCII跟char值的东西大多也就只能一笑了之了。
说实话就是C本身还好,ISO C算是公认的没被实现架空的规范(M$奇葩不论),也就谭×之类能骗骗小白。其它一些地方不靠谱的说法太多太乱了,大部分用户也未必需要搞清楚——也未必有机会搞清楚。比如关于reentrancy跟thread safety的定义涵盖,POSIX跟Qt文档使用的定义下的结论刚好相反。这时候还得搞清楚语境判断上下文再作结论。
所以10L赵老湿之类怎么放置play的正确姿势应该不难理解了吧。