手写C语言中强制类型转换算法
来源:互联网 发布:万网备案域名购买 编辑:程序博客网 时间:2024/05/17 04:52
具体了解C语言中强制类型转换是怎么实现的具体的算法或代码或者可以告知在哪个地方可以查看到相关的资料……现举个例子,好明晰我的问题。int i = (int)2.5;i的值是不是变为了2.比如说现在编写个函数int float_to_int(float a){........}函数体里面不用到强制类型转换,怎么实现浮点型数据到整型数据的转换。int float_to_int(float f){ int flag; int sign; int shift; int number; int *value = (int *)&f; //取得位模式的整数类型 sign = *value & 0x80000000;//取得符号值 shift = ((*value & 0x7f800000) >> 23) - 127;//取得偏移量 /* **如果偏移量为负数,则原浮点数肯定为小数,直接返回0 */ if(shift < 0) return 0; number = (*value & 0x007fffff) | 0x00800000;//取得浮点数小数部分和省略的1 /* **进行移位,取得整数值 */ flag = 23 - shift; if(flag >=0) number = number >> (23 - shift); else number = number << (shift - 23); return sign?-number:number;//根据符号位判断返回是正数还是负数}以上是核心代码,已经调试运行过了,没有问题。但是,这个代码只能运行int型变量数据的限制范围,即-2^31到2^31-1。超过这个数据范围,结果接不太了解了。
0 0
- 手写C语言中强制类型转换算法
- C语言中强制类型转换总结
- C 语言中强制类型转换
- C语言类型强制转换
- C语言强制类型转换
- C语言类型强制转换
- C语言强制类型转换
- [强制类型转换]C语言中的强制类型转换相关
- C语言中int到float的强制类型转换
- C语言中int到float的强制类型转换
- C语言中强制类型转换的总结
- C语言指针强制类型转换
- C语言指针强制类型转换
- C语言指针强制类型转换
- C语言指针强制类型转换
- C语言指针强制类型转换
- C语言中的强制类型转换
- 关于c语言中的强制类型转换
- R软件读取中文编码的数据错误解决方法
- 《智慧城市—大数据、物联网和云计算之应用》
- 一个最简单的sdl显示图片例子sdl example sdl 例子 例程SDL贴图bmp
- SP2010和Windows PowerShell 2.0--PowerShell脚本方法和创建自定义命令
- 程华奕:凡是过去,皆为序曲——大数据变现时代来临
- 手写C语言中强制类型转换算法
- 自学Linux命令的四种方法
- 常见小问题总结
- AE二次开发中获取A点到B点的最佳路径(1)
- FFmepg 多线程解码历程 - 3: int ff_thread_decode_frame
- eclipse svn提交代码到google code 出错(Server sent unexpected return value (405 Method Not Allowed) in resp)
- 通过8个技巧让你成为一个超强的Linux终端用户
- 动态连接库的加载
- 如何在Linux上提高文本的搜索效率