endianness相关内容
是否有可能从花车大转换为小端?我有一个从大端平台,我通过 UDP 以Windows进程发送一个值(小尾数)。这个值是一个浮动,但是当我试图BitConverter.ToSingle我总是5.832204E-42,但它应该是36.000。 我在做什么错了? 下面是一个剪断code: //接收线程 私人无效receiveData的() { 诠释计数= 0; IPEndPoint
..
我多头阵列我要写入磁盘。最有效的磁盘I / O功能采取的字节数组,例如: FileOutputStream.write(字节[] B,的int抵消,诠释长度) ...所以我想通过我的转换长[] 到开始的byte [] (8字节每个长)。我努力寻找一个干净的方式来做到这一点。 直接类型转换似乎并不不允许的: ConversionTest.java:6:不可兑换的类型 发现:长[] 要求:字
..
我有问题。我使用SQLite来存储声音。我得到的声音从它的byte []。 然后转换成字节[]浮动[]: 私人浮法[] ConvertByteToFloat(byte []数组) { 浮动[] = floatArr新的浮动[array.Length / 4]; 的for(int i = 0; I< f
..
我有一个字节数组,其中数组中的数据实际上是短期的数据。该字节以Little Endian下令: 3,1,-48,0,-15,0,36,1 ,当在转换为短值的结果: 259,208,241,292 有在Java中的简单方法的字节值转换为它们的对应的短的值?我可以写一个循环,只需要每一个高字节,由8位,其低字节接班和OR,但是,有一个性能命中。 解决方案 通过 java.nio.Byt
..
如何确定的ARM处理器在仅使用汇编语言运行端模式。 我可以很容易地看到的Thumb / ARM状态下读取CPSR的第5位,但我不知道是否有在CPSR或相应的位别处字节顺序。 ;傻例如试图执行ARM code时,我可能会在Thumb模式下.... MRS R0,CPSR ANDS R0,#为0x20 BNE ThumbModeIsActive 乙ARMModeIsActive 我有访问数据A
..
我如何大端转换为小端ARM中的? 解决方案 你说的是ARM的端模式,或者读一些其他一些大端处理器编写等? 通常从大/小尾数转换成/你身边交换字节。所以0xABCD是0xCDAB作为一个16位的数为0x12345678看时0x78563412作为32位的数字观察时 ARM内核的ARMv5及以上(ARM7,ARM9等)有一个称为BE-32的端模式,这意味着大端字不变。 ARMv6及更高版本
..
这是我一直在问自己最近一个真正的问题是什么带来的设计选择86左右是一个小端架构,而不是大端架构? 解决方案 在很大程度上,你在开始时加,因为携带朝着更显著数字传播最显著数字(右端)一样的道理。把最显著字节开始允许处理器得到有只读的第一个字节后的附加开始的偏移量。 在你已经做了足够的组件的编码和调试,你可以来,这不是小尾数是这样的结论奇怪的选择 - 这是奇怪的是,我们人类使用大端。
..
有一个行宏定义来判断机器的字节顺序。我使用下面的code,但其转换为宏就太长了。 unsigned char型test_endian(无效) { INT test_var = 1; unsigned char型test_endian * =(无符号字符*)及test_var; 回报(test_endian [0] == NULL); } 解决方案 code支持任
..
我有UINT类型在C#中的数组,检查是否该程序正在一个小端机器上后,我想将数据转换为大端类型。由于数据量可能会变得非常大,但总是偶数,我就在想考虑两个UINT类型为ULONG类型,在ASM更好的性能和节目,所以我正在寻找一个非常快(最快可能的话)汇编算法转换成小端的大端。 解决方案 对于大量的数据,在 BSWAP 指令(在Visual C ++的下的 _byteswap_ushort , _b
..
有没有一种编程方式来检测你是否是一个大端或小端架构?我需要能够写入code,这将是英特尔或PPC系统上执行,并使用完全相同的code(即没有条件编译)。 解决方案 我不喜欢根据类型双关的方法 - 它通常会被编译器警告不要。这正是工会的! INT is_big_endian(无效) { 联盟 { uint32_t的我; 焦炭C [4]。 }·宾
..
如何小端的ByteArray转换为大端在AS3? 我转换成位图数据以大端的ByteArray然后将其推入内存与Adobe炼金术。然后,当我从内存中读取它,我得到小端的ByteArray。如何获得大端。 我用这个例子code HTTP ://blog.debit.nl/2009/03/using-bytearrays-in-actionscript-and-alchemy/ (内存分配在C中与
..
我工作的memcache的协议,该协议,在某些点上,使用64位整数的实现。这些数据必须存储在“网络字节顺序”。 我希望有一些 uint64_t中htonll(uint64_t中值)函数来完成的改变,但不幸的是,如果它存在,我怎么也找不到它。 所以,我有1个或2个问题: 是否有任何的移动(在Windows,Linux,AIX)标准功能做到这一点? 如果没有这样的功能,你会如何实现它? 我心里
..
的手册页 htonl()似乎表明,你只能用它长达32位值。 (在现实中, ntohl()被定义为无符号长,我的平台上为32位。我想,如果无符号长为8个字节,它会工作的64位整数)。 我的问题是,我需要将64位整数(对我来说,这是一个无符号很长很长)从大端为小端。现在,我需要做的具体的转换。但它会更好,如果函数(如 ntohl())不会将我的64位值,如果目标平台是大端。 (我宁愿避免增加自己的p
..
那么,“字节序”的主题总是有点混乱给我,但我从来没有遇到这需要我别想二进制作家/读者,我用的默认行为的任何问题。我写一个PNG去codeR在C#现在。 PNG文件格式规范规定,所有号码都存储在大端符号(我觉得这很自然)。但是,我感到非常惊讶,当我注意到,那.NET的BinaryReader在/写卡器的工作原理与小尾数符号。有什么困惑我还要多,是事实,Java的二进制IO适用于大端符号(一个我不是一
..
好吧,如果我有一个二进制文件的连接codeD无论是在小尾数或在.NET大端,究竟是读/写操作的最佳方法是什么? 在.NET框架我只成功地发现了用小尾数为默认BinaryWritters / BinaryReaders,所以我的方法是实现自己的BinaryReader在/ BinaryWritter于大端读/书面方式的数据,但我不知道是否有一个更好的形式给出。 解决方案 我喜欢这一个: 其他
..
我目前正在对涉及的图片一个大项目。其中一个我遇到的大问题是图像的存储方式(JPEG更清晰)。我总是尽管这在我们的现代世界中,我们没得botter关于这个主题,但现在我不知道。 我做的: 在我做一个HTTP请求到IP摄像机,相机返回我的字节数组。 在我使用Image.FromStream解析这些字节到.NET中的物体图像。 在我把我的Image对象,并做了保存到硬盘上的物理文件。 这些照片,然
..
我想读一个二进制文件与BinaryReader在类,我需要阅读它作为UInt32的块,然后做一些位转移等后记。 不过,因为当我使用ReadUInt32方法因故位顺序是相反的。 如果我比如有一个文件,其中前四个字节看起来像这样十六进制,为0x12345678 ,他们最终就这样被ReadUInt32被读取之后: 0x78563412 。 如果我使用的ReadBytes(4)方法中,我得到了预期的
..
我有花车的数组需要转换为字节数组,并返回一个float [] ...谁能帮我正确地做到这一点? 我的工作与bitConverter类,发现自己卡住试图追加的结果。 我这样做的原因是这样我就可以节省运行时间值转换为IO流。目标存储天青页斑点的情况下,重要的事情。我不关心什么尾数,这是储存在,只要输入输出相匹配。 静态的byte [] ConvertFloatToByteArray(浮动[]花车
..
我有一个系统,其中的远程代理发送的序列化结构(从嵌入式C系),给我读,并通过IP / UDP店。在某些情况下,我需要发回相同的结构类型。我想我有一个不错的设置使用Marshal.PtrToStructure(接收)和Marshal.StructureToPtr(发送)。然而,一个小的小问题,就是需要在网络大端整数转换为我的86小端格式在本地使用。当我再次送他们,大端是要走的路。 下面是功能问题:
..
在code以下,为什么X和Y采取不同的价值观比我会直觉地认为?如果这些字节0-7被写入缓冲器,不应该将所得长具有以相同的顺序字节?这就像它在相反的顺序读取长值。 X 0x0706050403020100长 ÿ0x0706050403020100长 ž0x0001020304050607长 MemoryStream的毫秒=新的MemoryStream(); byte []的缓冲区=新的字节[]
..