两个C#问题;我怎么能重新解释一个浮点数到int? C#是否具有非静
1.
我如何重新诠释一个浮动到一个int(或一个双倍到一个长)? float f = 2.0f; int i = (int)f; // causes conversion 我只想将位模式从f复制到i.如何才能做到这一点? 2. public static implicit operator MyClass(double s) { return new MyClass(s); } .. .. MyClass m = 2.2; // this code uses 'm' and one intermediate object. X- 20045 X- 200 200 X- 200 X- 200 X- 200 X- 200 X- 200 X- 200 X- 200 X- 200 X- 200 X- 200 200我的理解正确吗?新新200的X- 200新新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新新200新200新新200新200新新200新200新新200新200新新200新200新新200新200新新200新200新新200新新200新新200新新200新新200新Version旗新新旗新新200如果是这样,怎么办? 谢谢 解决方法
>
BitConverter类可以检索任何原始类型的字节,然后您可以使用它们来创建一个int.另一个选项是
Buffer.BlockCopy,如果你有大量的转换做.
float ff = 2.0f; int ii = BitConverter.ToInt32(BitConverter.GetBytes(ff),0); float[] ff = new float[...]; int[] ii = new int[ff.Length]; Buffer.BlockCopy(ff,ii,ff.Length * 4); // byte-wise copy of ff into ii > C#中没有任何其他选项,但是,我认为虽然在正确的情况下,将会有一个副本,但任何足够简单的实现都将完成JIT优化,从而可能无需复制. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |