c语言强制转换

[复制链接]
查看11 | 回复3 | 2011-3-9 16:52:57 | 显示全部楼层 |阅读模式
t型为两个字节即16个二进制位,对有符型int来说二进制位最高位表示符号,“0”为正、“1”为负。
又数在内存中是以其补码形式存在,正数补码为其本身,如二进制数101011在内存中的表示为0 0000000 00101011,第一个0表示此数为正数,后面为其补码;负数的补码为其反码+1 ,如-100110,先将其改写为-0000000 00100110,(由最高位为符号站不管它,先看数据位即后15位)取反得1111111 11011001(先不管符号)在+1得1111111 11011010 在将符号位写上1 1111111 11011010 这样-100110的补码即在计算机内存中存放的形式就表现出来了1 1111111 11011010 ...
回复

使用道具 举报

千问 | 2011-3-9 16:52:57 | 显示全部楼层
double x=17 int x=17之间有什么区别 只是分配内存空间不一样???计算时 x/2 得到的结果也不一样double/int=double 所以这个是 8.50int/int=int 这个是 8(int )((double)(9/2) 既然 9/2舍去余数是4何来的 强制转换??你应该少了一个括号,看一下有没有打错...
回复

使用道具 举报

千问 | 2011-3-9 16:52:57 | 显示全部楼层
一个带小数,一个不带小数。(int )((double)(9/2) 有错误,还是把完整语句贴出来吧,这样才好分析。...
回复

使用道具 举报

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

本版积分规则