c# int byte转
至少可以通过三种方法来进行转换。
在.NET Framework类库的System名字空间中有个叫做BitConverter的类,它是专门用来进行这种转换的。
很简单的一种方法:int i=100; byte[] result = BitConverter.GetBytes(i);
它有一个GetBytes方法,对于大多数简单的类型来说,该方法都被重载了,它可以返回一个byte array来保存你传递的值。它也有几个ToTypeName方法用来将一个byte array转换成一个基本类型(primitive type):byte[] b = BitConverter.GetBytes(
<wbr> <wbr> 0xba5eba11 );<br>//{0x11,0xba,0x5e,0xba}<br>uint u = BitConverter.ToUInt32(<br> <wbr> <wbr> new byte[] {0xfe, 0x5a, 0x11,<br> <wbr> <wbr> 0xfa},0 ); // 0xfa115afe</wbr></wbr></wbr></wbr></wbr></wbr>
在运用BitConverter类时,要记住的一个重点是它的行为取决于硬件架构(代码在该硬件架构上运行)的字节顺序(endianness)——就是说,integer字节在内存中的存储顺序。如果你将bit保存为可以在许多不同平台上读取的一个文件格式,那么就会出问题。BitConverter有一个公有的IsLittleEndian字段,你可以查看它是如何运行的,但遗憾的是,你并不能改变它。
也可以不用BitConverter类,而通过手动位移(bit shifting)来进行转换: b = new byte[] {0xfe,0x5a,0x11,0xfa};
u = (uint)(b[0] | b[1] << 8 |
<wbr> <wbr> b[2] << 16 | b[3] << 24);<br>b[0] = (byte)(u);<br>b[1] = (byte)(u >> 8);<br>b[2] = (byte)(u >> 16);<br>b[3] = (byte)(u >> 24);<br><br>用这种方法就可以避免字节顺序问题,因为可以完全控制字节的位置。</wbr></wbr>
最后——如果不介意用不安全的代码——可以通过直接的内存拷贝来实现转换,把一个指向byte array的指针(pointer)转换成一个指向integer类型的指针,然后取它的值(dereference):unsafe {
<wbr> <wbr> fixed ( byte* pb = b )<br> <wbr> <wbr> u = *((uint*)pb);<br>}</wbr></wbr></wbr></wbr>
同BitConverter一样,这个方法的运行结果取决于代码在何种硬件上运行。
如果要进行很多这种转换——比如说在一个循环中——而且想得到最佳性能,那么建议用最后两种方法中的一种。BitConverter有些慢,尽管区别不大
c# int byte转相关推荐
- java int byte数组_Java 中int与byte数组转换详解
1.与运算符的理解(&): 参加运算的两个数据,按二进位进行"与"运算.如果两个相应的二进位都为1,则该位的结果值为1,否则为0.即 0&0=0:0&1=0 ...
- kotlin中Int Byte的相互转换,常用
串口通信中传输单位为byte,一个byte占用八位/8bit 常用的方法 1.一个Int转成一个byte 直接调用Int.toByte()方法 看如下直接转换 var num = 23var num2 ...
- 金现代面试题—— i++,++i, ,|自动装箱和自动拆箱(int,byte,float等)|取int等基本类型的最大值
本文目录 1.看程序运行,算运行结果 2.问答--解释一下自动装箱和自动拆箱 3.对byte,short,float.double 进行自动装箱和自动拆箱 4.通过封装类获取其基本类型的最大值 本文目 ...
- c语言byte数组转为int,byte转int 0xFF
参考文档 https://www.cnblogs.com/think-in-java/p/5527389.html "好比我们拿到的文件流转成byte数组,难道我们关心的是byte数组的十进 ...
- java中byte数组与int类型的转换(两种方式)
java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...
- java类型转换 byte转int
转换思路 1.存储大小:int是32位,byte是8位,所以要用4个byte转储 示例: byte[0] 记录 8-1位: byte[1] 记录 16-9位: byte[2] 记录 24-17位: b ...
- Java中byte[]数组和int之间的转换
在最近的项目中需要用到byte[]和int互转,找了一些资料选了其中感觉蛮不错的一种解决方法记录一下. 转自:http://blog.csdn.net/sunnyfans/article/detail ...
- Golang实现的[]byte和int转化
前几天写计网的项目用了Golang,中间有一步需要把字节和int相互转化,自己写了一个转换函数,用Golang自带的 binary.LittleEndian 库实现,int转byte的数组以小端形式存 ...
- int long java_java long int的区别
java long int的区别 java中long和int都属于整型,为什么还要细分为long和int两种数据类型呢?这是因为它们代表的大小不一样.具体区别如下: 1.区别1 16位系统:long是 ...
最新文章
- 对接kafka_flume对接kafka多路径同时收集日志,配置怎么写?
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取注入的 libbridge.so 动态库中的 load 函数地址 并 通过 远程调用 执行该函数 )
- 机器学习cae_CAE工程分析技术年会记
- jQuery 常用方法总结
- linux top交叉编译_ARM Linux交叉编译工具链的制作
- 一步步编写操作系统 61 任务状态段 TSS
- c++ array容器 传参_C++ 顺序容器基础知识总结
- linux命令行安装vnc_CentOS下安装VNC并设置远程服务
- Adaboost算法的学习笔记~
- 美国国家标准技术局发布应用容器安全指南
- 修改k8s的集群域名后缀
- 利用ViewItems来管理我们ListView项之间的drag-and-drog
- DIY兼容机装苹果系统
- GD32官方固件库(标准外设库)下载
- 怎么添加扫描仪到计算机快捷键,Win7系统添加扫描仪快捷方式的方法
- 畜生,想你了*_*发信站: BBS 哈工大紫丁香站
- 网络基础知识 | 协议 | TCP/IP分层模型
- Android全屏的三种方式
- SU插件情报局 | CleanUp3 清理大师
- 2023美团商家数据
热门文章
- 11(AtCoder-2649)
- LSI最长递增子序列(DP问题)
- mysql语法中的join_MySQL JOIN 语法说明与 图解
- 为什么做了梦第二天想不起来_转告父母!为什么有人睡觉爱把脚伸到被子外面?其实与身体状况有关…切勿忽视...
- 机器学习--Lasso回归(LassoRegression)
- libpng warning: iCCP: known incorrect sRGB profile
- Self-Supervised Learning 入门介绍
- [Matlab] 传入 dsolve 的方程组必须是行向量才能求解
- 【如意影视】运营级+完整类库+解析线路+无限增加或删减解析接口+如意可视化播放器1.1
- js一个按钮弹出两个按钮_车内常见按钮,你却一个不认识?一分钟带你认识车内常见按钮...