社区
C#
帖子详情
问:有4个字节,如何判断所转化的值类型是Float还是Int32?
zealic
2005-08-01 05:36:22
请问该如何判断4个字节所应该转换的类型
我觉得应该从Float的在内存中的储存方式入手...
请教。。。
谢谢
...全文
260
14
打赏
收藏
问:有4个字节,如何判断所转化的值类型是Float还是Int32?
请问该如何判断4个字节所应该转换的类型 我觉得应该从Float的在内存中的储存方式入手... 请教。。。 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jamestan
2005-08-02
打赏
举报
回复
个人觉得应该没办法区分的。
计算机存储的东西,一定要原始存储的才知道作用吧?就好像存几个字节的东西,如果作为程序,就是指令集,如果作为数据,就是几个字节的资料,在没有辅助描述(文件类型)的情况下,也没有办法判别吧?至少没有一个通用的工具或者方法能准确判别的。
Jim3
2005-08-02
打赏
举报
回复
如果你的整数小于7fffff,而浮点数不会非常小,比如2的-127次方
那么就可以用浮点数的23-30位是否为零进行判断,如果不为零就是浮点数,否则就是
整数
(上面只是一个思路,不够准确,仅供参考)
速马
2005-08-01
打赏
举报
回复
不能区别
最多判断是不是合法的浮点数
skyfarwolf
2005-08-01
打赏
举报
回复
up
tslkfyh
2005-08-01
打赏
举报
回复
刷新N遍,怎么还没高手来指示一下呢,顶一下吧
tslkfyh
2005-08-01
打赏
举报
回复
Jim3(Jim)说得有些道理哦!
float 关键字表示存储 32 位浮点值的简单类型
都是四个字节表示,都可以相互转换,上面的也可以相互转换,只是大小不一样而已
YYKXQ
2005-08-01
打赏
举报
回复
你要判断的变量为temp;
if(temp is Int32)
Console.WriteLine("Int");
if(temp is float)
Console.WriteLine("float");
Jim3
2005-08-01
打赏
举报
回复
好像没办法,除非有附加条件,比如大小范围等条件
ieee 浮点数的存放格式
http://www.pediy.com/bbshtml/BBS3/Forum669.htm
zealic
2005-08-01
打赏
举报
回复
感谢tslkfyh(TSL)所做的测试
貌似Int32和Float的布局是一个从高位开始保存,一个从低位开始保存
有待测试
zealic
2005-08-01
打赏
举报
回复
条件可以扩充
变成 4*n 个字节
且类型必定为 Int32 或 Float
而且类型相同
如何判断
tslkfyh
2005-08-01
打赏
举报
回复
int i=12;
float j=12.00F;
byte [] ibyte=BitConverter.GetBytes(i);
byte [] jbyte=BitConverter.GetBytes(j);
foreach(byte temp in ibyte)
{
MessageBox.Show(temp.ToString());
}
MessageBox.Show("ibyte over");
foreach(byte temp in jbyte)
{
MessageBox.Show(temp.ToString());
}
打印出来的布局是:12 0 0 0 ibyteover 0 0 65 64
zealic
2005-08-01
打赏
举报
回复
楼上看清题目
只有4个字节给你,纯粹的byte[4]
而不是给你一个未知变量
shrinerain
2005-08-01
打赏
举报
回复
GetType()
NewBo
2005-08-01
打赏
举报
回复
同意楼主思路,但是主要还是实现,试试先!!
将
float
型数据
转化
成
int
型
在将
float
型数据
转化
成
int
数据前,首先我们要了解
float
型数据在内存中的存储方式,
float
类型
在内存中占4个
字节
32
个比特位,如下: 0 00000000 00000000000000000000000 1.符号位 其中最左边的为符号位,0为正,1为负。 2.指数 接下来一共8位,也用二进制来表示,系统默认偏移量计算
值
为127,也就是说,如果你的指数是4,那么内存...
算法:C# 如何解析标准的
Float
32
类型
的数据?将
字节
数组转成
Float
32
类型
的数据? 大端
字节
序。将byte[]
转化
成
float
[]
在嵌入式开发中经常要用到通讯,将
float
类型
数据上传到Windows等监控上位机,在这里只能将
float
数据
转化
为unsigned char
类型
数组,那怎么
转化
呢, 首先得知道
float
32
类型
数据在内存中的存储形式: 阶码:转成规格化的二进制以后与127之和。 eg:13.25 13的二进制是:1101 小数部分二进制获取规则:小数部分乘以2取整,然后从前往后读。即: 0.2...
int
与
float
深入理解
别在
int
与
float
上栽跟头
int
与
float
是我们每天编程都用的两种
类型
,但是我们真的足够了解它们吗。昨天在博客园看到一个比较老的笑话: “昨天晚上下班回家,一民警迎面巡逻而来。突然对我大喊:站住!民警:
int
类型
占几个
字节
? 我:4 个。 民警:你可以走了。 我:为什么
问
这样的
问
题? 民警:深夜还在街上走,寒酸苦逼的样子,不是小偷就是程序员。”(注:看到有朋友评论说占几个
字节
算数
转化
之
float
的范围和
int
之间的关系
算数
转化
之
float
的范围和
int
之间的关系 转载:http://www.cnblogs.com/luguo3000/p/3719651.html
int
与
float
是我们每天编程都用的两种
类型
,但是我们真的足够了解它们吗。昨天在博客园看到一个比较老的笑话: “昨天晚上下班回家,一民警迎面巡逻而来。突然对我大喊:站住!民警:
int
类型
占几个
字节
? 我:4 个。 民警:你可以走了。 ...
关于
float
型数据与
int
型,
字节
数组的
转化
java中
float
与
int
转化
有
int
i =
Float
.
float
To
Int
Bits(v);及相反函数,相当方便; 下面介绍的是C++中 c++
float
int
按位互转 inline
float
int
32
_bitcast_
float
32
(
int
temp){return(*((
float
*)((void *)(&temp))));} inline
int
flo
C#
111,112
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章