首页 > TAG信息列表 > endianness

在Silverlight中BigEndianBitConverter?

我正在尝试在Silverlight中使用MiscUtil.Conversion实用程序. http://www.yoda.arachsys.com/csharp/miscutil/ 当我尝试对其进行编译时,出现错误,指出Silverlight的BitConverter类没有以下两种方法: DoubleToInt64BitsInt64BitsToDouble 好吧,我打开了Reflector,并在mscorlib中找到

android-本机类型的二进制表示形式是否在所有目标上都保证相同?

我打算将数据以二进制格式存储为资源,将其读取到int缓冲区中,然后基本上直接将其传递给本机C函数,该函数可能将其转换为struct / class并使用它.没有指针,显然,只是整数和浮点数. 问题是-我需要做哪种修复?我想我需要检查ByteOrder.nativeOrder(),找出它是大字节序还是小字节序,并在

c#-将Int32转换为24位有符号整数

我需要将Int32值转换为3字节(24位)整数.字节序保持不变(很小),但是我无法弄清楚如何正确移动符号.这些值已经被限制在适当的范围内,我只是不知道如何将4字节转换为3.使用C#4.0.这是用于硬件集成,因此我必须具有24位值,不能使用32位.解决方法:如果要执行此转换,只需删除四字节数字的

c-如何在4字节int中打印出每个字节的内容

我设计了一个C代码来检查机器的字节序. 它运作良好.但是,它不能在4字节int中打印出每个字节的内容. #include<iostream> using namespace std; bool f() { int a = 1; char *p = (char*)&a; for (int i = 0 ; i < 4 ; ++i) cout << "p[" << i << &q

javascript-将64位小端整数转换为数字

首先,我为这个愚蠢的问题感到抱歉,但是我是nodejs的新手. 我从一个套接字读取了一个64位的小的endian有符号整数,并将其放在Buffer上,所以让我说数字256表示为: <Buffer 00 01 00 00 00 00 00 00> 由于Buffer类只有readInt32LE和readUInt32LE,如何使用32位操作将此缓冲区转换为等

_swab函数的Linux变体

Linux中是否有_swab C函数的类似物?解决方法:在http://man7.org/linux/man-pages/man3/swab.3.html处参考Linux中的拭子功能

相当于htonl的JavaScript?

对于AJAX请求,我需要发送一个幻数作为请求正文的前四个字节,最高有效字节在前,以及请求正文中的其他几个(非恒定)值. JavaScript中是否有等同于htonl的东西? 例如,给定0x42656566,我需要产生字符串“ Beef”.不幸的是,我的电话号码是0xc1ba5ba9.服务器读取请求时,它将获取值-1014906

PHP打包/解包以大字节序字节顺序浮动

如何使用php以大端字节顺序打包/解压缩浮点数? 我已经通过解压缩功能做到了这一点,但是我不确定这是否行得通. function unpackFloat ($float) { $n = unpack ('Nn'); $n = $n['n']; $sign = ($n >> 31); $exponent = ($n >> 23) & 0xFF; $fraction = $n & 0x

C#将int转换为小尾数十六进制字符串

我想将int转换为小端序十六进制字符串.然后去除最后两个零. 这是我的诠释: int score = 2516000; 要返回的结果: 20642600 子字符串之后的最后一个字符串 206426 这样做最简单的方法是什么?解决方法: var reversedBytes = System.Net.IPAddress.NetworkToHostOrder(2516000); //

android-从fetchUuidsWithSdp奇怪的UUID逆转

我有一个在树莓派上运行的python蓝牙服务器(使用PyBluez).我在服务器中使用的uuid是: 8f86d132-4ab8-4c15-b8df-0b70cf10ea56 我在Android应用中的蓝牙服务器上拨打device.fetchUuidsWithSdp().当它最终获取uuid时,它们已经以两个为一组的顺序反转了(似乎字节序已更改). 在广播接收

Java中的Little Endian和Big Endian(Android)

我正在使用Android Studio构建应用程序,并且在我的项目中,我需要进行很多转换,例如将short / int转换为字节数组.我还希望我的应用程序从使用C语言编码的机器人接收数据,并且该机器人发送的结构中包含很多uint16-32,int16-32…. 我发现了很多帮助我将字节数组中的属性转换为我的帖

处理字节序和文件的最常见方法C

我刚开始使用char读取/写入8位整数到文件中.不久之后,我意识到我需要能够使用超过256个可能的值.我做了一些关于如何将16位整数读/写到文件的研究,并且意识到了大小端的概念.我进行了更多研究,发现了几种处理字节序的方法,并且我还学习了一些编写与字节序无关的代码的方法.我的总体

java-将位转换为整数

我收到一个包含字节数组的数据包,我必须从中获取一些整数值. 这是文档的一部分.有人能帮助我吗? 这是一个4字节数组. Year from 1990 to 2052 (6 bit), Month from 1 to 12 (4 bit), Day from 1 to 31 (5 bit), Hour from 0 to 23 (5 bit), Minute from 0 to 59 (6 bit), Seco

c – 网络字节顺序和字节顺序问题

我在网上看到,网络的标准字节顺序是大端,也称为网络字节顺序.在网络上传输数据之前,首先将数据转换为网络字节顺序(大端). >但任何人都可以告诉我谁将负责这次转换. >代码开发人员是否真的担心这种字节顺序?如果是,请您告诉我们需要注意的例子(如果是C,C).解决方法:在C和C中,您将不

c – 从4个复合字节中构建一个32位浮点数

我正在尝试用4个复合字节构建一个32位浮点数.有没有比使用以下方法更好(或更便携)的方法? #include <iostream> typedef unsigned char uchar; float bytesToFloat(uchar b0, uchar b1, uchar b2, uchar b3) { float output; *((uchar*)(&output) + 3) = b0; *((uch

Java是以小端还是大端读取整数?

我问,因为我正在从C进程向Java发送字节流.在C端,32位整数的LSB是第一个字节,MSB是第4个字节. 所以我的问题是:在Java端,当我们读取从C进程发送的字节时,Java端的endian是什么? 一个后续问题:如果Java端的endian与发送的端不一样,我怎样才能在它们之间进行转换?解决方法:使用网络字节顺

当dpkg-architecture不存在时,如何区分linux上的mips cpu类型?

简短的问题:如何在任何Linux发行版上可靠地区分mips,mipsel,mips64和mips64el? 更长的解释: 我们为许多架构提供静态构建/分发独立二进制文件(用于TeX).安装脚本通常运行uname -s和uname -m来确定操作系统和体系结构.然后根据该决定从服务器获取二进制文件,因此它需要可靠地工作.确实

c – 将数据转换为big endian

我正在使用WinSock将UDP数据包发送到服务器,我需要以big endian发送数据.我不确定如何在发送之前转换结构的字节顺序. 我有这样的结构: struct ConnectIn { std::int64_t ConnectionID = 0x41727101980; std::int32_t Action = 0; std::int32_t TransactionID; Co

c – ICU字节顺序标记(BOM)

我正在使用ICU的ustdio函数将UnicodeString对象写入一系列编码中的文件,但它似乎不会添加BOM. 我的代码: void write_file(const char* filename, UnicodeString &str) { UFILE* f = u_fopen(filename, "w", NULL, "UTF-16 LE"); u_file_write(str.getTerminatedBuffer(),

如何在Python中将256位大端整数转换为小端?

不太复杂,或者我希望如此.我有一个256位十六进制整数编码为大端,我需要转换为小端. Python的struct模块通常就足够了,但the official documentation没有列出的格式,其大小甚至接近我需要的格式. 使用struct的非长度特定类型(虽然我可能这样做错了)似乎不起作用: >> x = 'ffffffffff

通过套接字发送任意长度的数组.字节序

我现在正在使用套接字编程,我遇到了一个问题,我不知道如何以便携方式解决. 任务很简单:我需要通过网络发送16字节的数组,在客户端应用程序中接收它并解析它.我知道,有一些函数,如htonl,htons等,可以与uint16和uint32一起使用.但是,我应该如何处理大于此数据的数据呢? 谢谢.解决方法:

c – 字节序是在编译时决定的吗?

我想要变得懒惰并编写一些代码,如果目标机器的字节顺序与我自己的字节序不同,那么它将会破坏.但我想知道什么时候它会中断,所以如果有必要我可以解决它. 浮点数和整数的字节顺序是编译程序的属性,这样我可以在编译时用某种断言检查它吗?或者它是我必须在运行时声明的东西?解决方法:是

c – 用htons确定字节序

请考虑以下代码: #include <stdio.h> #include <arpa/inet.h> int main(int argc, char *argv[]) { uint16_t num = 123; if (htons(num) == num) { printf("big endian\n"); } else { printf("little endian\n");

c – endianess测试和类型铸造

我知道要测试字节序,我可以这样做: bool IsLittleEndian(){ int a = 1; char* ptr = (char*)&a; return *ptr; } 我的问题是为什么我们不能像这样只将int转换为char而不是int * to char *. int a = 1; char c = (char)a; 这也行吗?否则,我们不能做到这一点的原因是

在c中处理字节序

我正在努力将系统从python转换为c.我需要能够在c中执行通常使用Python的struct.unpack执行的操作(将二进制字符串解释为数值).对于整数值,我可以使用stdint.h中的数据类型来实现(某种程度)工作: struct.unpack("i", str) ==> *(int32_t*) str; //str is a char* containing the dat