|
查看: 917|回复: 7
|
想问一下 DATATYPE 的 CHANGE....(C++的问题来的)
[复制链接]
|
|
|
发表于 5-7-2008 11:44 AM
|
显示全部楼层
你这么做有什么实际作用? |
|
|
|
|
|
|
|
|
|
|
发表于 5-7-2008 11:57 AM
|
显示全部楼层
看不懂。。。。  |
|
|
|
|
|
|
|
|
|
|
发表于 5-7-2008 12:20 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 5-7-2008 04:52 PM
|
显示全部楼层
回复 1# 超级变态龙 的帖子
char 可以变成 integer 是因为 char 本身就是 integer。 char 是以 128/255 个integer 组成的( 根据 ASCII/ extended -ASCII ), 但是 integer 与 float (float, double ) 等等的data type 是不同的。
integer 基本上以 8 bits 组成。 在最左边的是sign bit, 1 是 negative , 0 是 possitive如 -25 是 10011001 而 25 是 00011001 其余 7 bits 是数值。
而在 floating point 系统里, (这里那32 bits 的系统来举例),
最左边的是 sign bit, 接下来 8 bits 是exponent, 其余的是 fractional。, 也就是 S | EEEEEEEE | FFFFFFFFFFFFFFFFFFFFFF , exponent 就是 2 ^ x, 如 sign 是0, exponent 是145 ( 10010001), fractional 是100011100001000000000000
那么就是说, 1.00011100001 * 2^( 145 - 127)
这样说你可能不很明白, 不过主要得是你明白 integer 鱼 floating point 的系统是不同的, 在bit 的排法上是两个完全不同的世界。 因此你无法让 c/c++ 在不使用 cast operator 的情况下转换data type 的。
[ 本帖最后由 onlylonly 于 5-7-2008 05:06 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 5-7-2008 06:00 PM
|
显示全部楼层
原帖由 onlylonly 于 5-7-2008 04:52 PM 发表 
char 可以变成 integer 是因为 char 本身就是 integer。 char 是以 128/255 个integer 组成的( 根据 ASCII/ extended -ASCII ), 但是 integer 与 float (float, double ) 等等的data type 是不同的。
integ ...
也就是说 CHAR = INTEGER 他们可以任意互相交换DATA TYPE?~因为CHAR 是 由 INTEGER 组成的??
INT 和 FLOAT 是不能 因为他们 是不同系统的?? |
|
|
|
|
|
|
|
|
|
|
发表于 5-7-2008 09:47 PM
|
显示全部楼层
其实不应该说是交换data type。
%f 的意思就是叫 compiler 以 floating point system 的方式将 variable 读出来。 但是 floating point 与 integer 的读法不同, 因此你得到的结果必定不是你说希望的。
而 integer 与 char 都是以 integer format 储存的。 char 储存时将会将char 转换成 ASCII 码储存。 ASCII 是 integer 来得, 所以我说char 与 integer 是 integer format, 这样你明白了嘛?
%c 就是以 variable 的数值, 然后与 ASCII 码对照, 然后显示出相对的char 来。 |
|
|
|
|
|
|
|
|
|
|
发表于 5-7-2008 09:47 PM
|
显示全部楼层
原帖由 超级变态龙 于 5-7-2008 06:00 PM 发表 
也就是说 CHAR = INTEGER 他们可以任意互相交换DATA TYPE?~因为CHAR 是 由 INTEGER 组成的??
INT 和 FLOAT 是不能 因为他们 是不同系统的??
他的意思是,char 和 int 在 memory 形态是一样的。int 和 float 在 memory 形态是不一样的。
譬如说:
memory 0x001F,对char来说就是 '1' ,对int来说就是31,对float 来说就是另一个小数值。 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|