int和byte数组相互转换详解

转换之前我们需要了解各种进制之间的关系,不太了解的可以先看下计算机组成原理和体系 这篇文章

byte

byte是字节的意思,一个字节等于8位,范围是 0000 0000 ~ 1111 1111(十六进制:0x0~0xff),总共包含256个数。
有符号的byte表示的范围为:-128~127
无符号的byte表示的范围为:0~255

java中默认的是有符号的byte,当我们需要与硬件交互时,需要转换为无符号的byte。

一、int转byte数组

1、当value小于等于255时,转换为1个字节,1个字节能表示无符号的范围为0 ~ 2 8 2^{8} 28-1,即0~255

例如:
int value = 246 转换成二进制为 1111 0110

( 246 ) 10 (246)_{10} (246)10 ( 1111   0110 ) 2 (1111\ 0110)_2 (1111 0110)2

转换成二进制为8位,占用1个字节

int value =246
byte[] bytes= new byte[1];
bytes[0] =(byte) (value & 0xFF);

bytes[0]

(byte) (value & 0xFF):这是一个与操作,0xFF是十六进制,转换成二进制为:1111 1111,转换成十进制为:255,当value和0xFF按位与运算时,得到的是value的最后8位(低8位),其余高位将被清零。这样做可以确保结果只包含原始数值的低8位,模拟出无符号整数的行为。

bytes[0]的二进制就为:1111 0110,转换成十六进制为:0xF6

bytes发送到硬件设备,硬件设备接收到的就是0xF6

2、当value大于255时,转换为2个字节,2个字节能表示无符号的范围为0 ~ 2 16 2^{16} 216-1,即0~65535

例如:
int value = 3658,转换成二进制为:1110 0100 1010

( 3658 ) 10 (3658)_{10} (3658)10 ( 1110   0100   1010 ) 2 (1110\ 0100\ 1010)_2 (1110 0100 1010)2

转换成二进制超过8位,占用16位,占用2个字节

int value =3658
byte[] bytes= new byte[2];
bytes[0] =(byte) ((value >> 8) & 0xFF);
bytes[1] =(byte) (value & 0xFF);

bytes[0]

(byte) ((value >> 8) & 0xFF):>>是右移操作,(value >> 8) 是先将value的所有位向右移动8位,移动后的左边(高位)会填充0(因为是无符号右移)。
( 3658 ) 10 (3658)_{10} (3658)10 ( 1110   0100   1010 ) 2 (1110\ 0100\ 1010)_2 (1110 0100 1010)2,(3658 >> 8)得到的是 ( 0000   0000   1110 ) 2 (0000\ 0000\ 1110)_2 (0000 0000 1110)2

& 0xFF:是按位与运算,得到最后8位, ( 0000   0000   1110 ) 2 (0000\ 0000\ 1110)_2 (0000 0000 1110)2 & 0xFF 得到的是 ( 0000   1110 ) 2 (0000\ 1110)_2 (0000 1110)2

所以bytes[0]的二进制值为:0000 1110,转换成十六进制为:0x0E

bytes[1]

(byte) (value & 0xFF) :是按位与运算,得到最后8位, ( 1110   0100   1010 ) 2 (1110\ 0100\ 1010)_2 (1110 0100 1010)2 & 0xFF得到的是 ( 0100   1010 ) 2 (0100\ 1010)_2 (0100 1010)2

所以bytes[1]的二进制值为:0100 1010,转换成十六进制为:0x4A

bytes发送到硬件设备,硬件设备接收到的就是0x0E4A

3、当value大于65535时,转换为3个字节,3个字节能表示无符号的范围为0 ~ 2 24 2^{24} 224-1,即0~16777215

例如:
int value = 5623658,转换成二进制为:0101 0101 1100 1111 0110 1010

( 5623658 ) 10 (5623658)_{10} (5623658)10 ( 0101   0101   1100   1111   0110   1010 ) 2 (0101\ 0101\ 1100\ 1111\ 0110\ 1010)_2 (0101 0101 1100 1111 0110 1010)2

转换成二进制超过16位,占用24位,占用3个字节

int value =5623658
byte[] bytes= new byte[3];
bytes[0] =(byte) ((value >> 16) & 0xFF);
bytes[1] =(byte) ((value >> 8) & 0xFF);
bytes[2] =(byte) (value & 0xFF);

bytes[0]

(byte) ((value >> 16) & 0xFF):>>是右移操作,(value >> 16) 是先将value的所有位向右移动16位,移动后的左边(高位)会填充0(因为是无符号右移)。
( 5623658 ) 10 (5623658)_{10} (5623658)10 ( 0101   0101   1100   1111   0110   1010 ) 2 (0101\ 0101\ 1100\ 1111\ 0110\ 1010)_2 (0101 0101 1100 1111 0110 1010)2,(5623658>> 16)得到的是 ( 0000   0000   0000   0000   0101   0101 ) 2 (0000\ 0000\ 0000\ 0000\ 0101\ 0101)_2 (0000 0000 0000 0000 0101 0101)2

& 0xFF:是按位与运算,得到最后8位, ( 0000   0000   0000   0000   0101   0101 ) 2 (0000\ 0000\ 0000\ 0000\ 0101\ 0101)_2 (0000 0000 0000 0000 0101 0101)2& 0xFF 得到的是 ( 0101   0101 ) 2 (0101\ 0101)_2 (0101 0101)2

所以bytes[0]的二进制值为:0101 0101,转换成十六进制为:0x55

bytes[1]

(byte) ((value >> 8) & 0xFF):>>是右移操作,(value >> 8) 是先将value的所有位向右移动8位,移动后的左边(高位)会填充0(因为是无符号右移)。
( 5623658 ) 10 (5623658)_{10} (5623658)10 ( 0101   0101   1100   1111   0110   1010 ) 2 (0101\ 0101\ 1100\ 1111\ 0110\ 1010)_2 (0101 0101 1100 1111 0110 1010)2,(5623658>> 8)得到的是 ( 0000   0000   0101   0101   1100   1111 ) 2 (0000\ 0000\ 0101\ 0101\ 1100\ 1111)_2 (0000 0000 0101 0101 1100 1111)2

& 0xFF:是按位与运算,得到最后8位, ( 0000   0000   0101   0101   1100   1111 ) 2 (0000\ 0000\ 0101\ 0101\ 1100\ 1111)_2 (0000 0000 0101 0101 1100 1111)2 & 0xFF 得到的是 ( 1100   1111 ) 2 (1100\ 1111)_2 (1100 1111)2

所以bytes[0]的二进制值为:1100 1111,转换成十六进制为:0xCF

bytes[2]

(byte) (value & 0xFF) :是按位与运算,得到最后8位, ( 0101   0101   1100   1111   0110   1010 ) 2 (0101\ 0101\ 1100\ 1111\ 0110\ 1010)_2 (0101 0101 1100 1111 0110 1010)2 & 0xFF得到的是 ( 0110   1010 ) 2 (0110\ 1010)_2 (0110 1010)2

所以bytes[2]的二进制值为:0110 1010,转换成十六进制为:0x6A

bytes发送到硬件设备,硬件设备接收到的就是0x55CF6A

4、当value大于16777215时,转换为4个字节,4个字节能表示无符号的范围为0 ~ 2 32 2^{32} 232-1,即0~4294967295

int在java中是有符号数,int的取值范围为- 2 31 2^{31} 231 ~ 2 31 2^{31} 231-1,即-2147483648~2147483648

例如:
int value = 316777215,转换成二进制为:0001 0010 1110 0001 1010 0010 1111 1111

( 316777215 ) 10 (316777215)_{10} (316777215)10 ( 0001   0010   1110   0001   1010   0010   1111   1111 ) 2 (0001\ 0010\ 1110\ 0001\ 1010\ 0010\ 1111\ 1111)_2 (0001 0010 1110 0001 1010 0010 1111 1111)2

转换成二进制超过24位,占用32位,占用4个字节

int value =316777215
byte[] bytes= new byte[4];
bytes[0] =(byte) ((value >> 24) & 0xFF);
bytes[1] =(byte) ((value >> 16) & 0xFF);
bytes[2] =(byte) ((value >> 8) & 0xFF);
bytes[3] =(byte) (value & 0xFF);

bytes[0]

(byte) ((value >> 24) & 0xFF):>>是右移操作,(value >> 24) 是先将value的所有位向右移动24位,移动后的左边(高位)会填充0(因为是无符号右移)。
( 316777215 ) 10 (316777215)_{10} (316777215)10 ( 0001   0010   1110   0001   1010   0010   1111   1111 ) 2 (0001\ 0010\ 1110\ 0001\ 1010\ 0010\ 1111\ 1111)_2 (0001 0010 1110 0001 1010 0010 1111 1111)2,(316777215>> 24)得到的是 ( 00000   0000   0000   0000   0000   0000   0001   0010 ) 2 (00000\ 0000\ 0000\ 0000\ 0000\ 0000\ 0001\ 0010)_2 (00000 0000 0000 0000 0000 0000 0001 0010)2

& 0xFF:是按位与运算,得到最后8位, ( 00000   0000   0000   0000   0000   0000   0001   0010 ) 2 (00000\ 0000\ 0000\ 0000\ 0000\ 0000\ 0001\ 0010)_2 (00000 0000 0000 0000 0000 0000 0001 0010)2 & 0xFF 得到的是 ( 0001   0010 ) 2 (0001\ 0010)_2 (0001 0010)2

所以bytes[0]的二进制值为:0001 0010,转换成十六进制为:0x12

bytes[1]

(byte) ((value >> 16) & 0xFF):>>是右移操作,(value >> 16) 是先将value的所有位向右移动16位,移动后的左边(高位)会填充0(因为是无符号右移)。
( 316777215 ) 10 (316777215)_{10} (316777215)10 ( 0001   0010   1110   0001   1010   0010   1111   1111 ) 2 (0001\ 0010\ 1110\ 0001\ 1010\ 0010\ 1111\ 1111)_2 (0001 0010 1110 0001 1010 0010 1111 1111)2,(316777215>> 16)得到的是 ( 00000   0000   0000   0000   0001   0010   1110   0001 ) 2 (00000\ 0000\ 0000\ 0000\ 0001\ 0010\ 1110\ 0001)_2 (00000 0000 0000 0000 0001 0010 1110 0001)2

& 0xFF:是按位与运算,得到最后8位, ( 00000   0000   0000   0000   0001   0010   1110   0001 ) 2 (00000\ 0000\ 0000\ 0000\ 0001\ 0010\ 1110\ 0001)_2 (00000 0000 0000 0000 0001 0010 1110 0001)2 & 0xFF 得到的是 ( 1110   0001 ) 2 (1110\ 0001)_2 (1110 0001)2

所以bytes[0]的二进制值为:1110 0001,转换成十六进制为:0xE1

bytes[2]

(byte) ((value >> 8) & 0xFF):>>是右移操作,(value >> 8) 是先将value的所有位向右移动8位,移动后的左边(高位)会填充0(因为是无符号右移)。
( 316777215 ) 10 (316777215)_{10} (316777215)10 ( 0001   0010   1110   0001   1010   0010   1111   1111 ) 2 (0001\ 0010\ 1110\ 0001\ 1010\ 0010\ 1111\ 1111)_2 (0001 0010 1110 0001 1010 0010 1111 1111)2,(316777215>> 8)得到的是 ( 00000   0000   0001   0010   1110   0001   1010   0010 ) 2 (00000\ 0000\ 0001\ 0010\ 1110\ 0001\ 1010\ 0010)_2 (00000 0000 0001 0010 1110 0001 1010 0010)2

& 0xFF:是按位与运算,得到最后8位, ( 00000   0000   0001   0010   1110   0001   1010   0010 ) 2 (00000\ 0000\ 0001\ 0010\ 1110\ 0001\ 1010\ 0010)_2 (00000 0000 0001 0010 1110 0001 1010 0010)2 & 0xFF 得到的是 ( 1010   0010 ) 2 (1010\ 0010)_2 (1010 0010)2

所以bytes[0]的二进制值为:1010 0010,转换成十六进制为:0xA2

bytes[3]

(byte) (value & 0xFF) :是按位与运算,得到最后8位, ( 0001   0010   1110   0001   1010   0010   1111   1111 ) 2 (0001\ 0010\ 1110\ 0001\ 1010\ 0010\ 1111\ 1111)_2 (0001 0010 1110 0001 1010 0010 1111 1111)2 & 0xFF得到的是 ( 1111   1111 ) 2 (1111\ 1111)_2 (1111 1111)2

所以bytes[2]的二进制值为:1111 1111,转换成十六进制为:0xFF

bytes发送到硬件设备,硬件设备接收到的就是0x12E1A2FF

总结:int转byte数组

将int数值转换为占四个字节的byte数组,如下

    /**
     * 将int数值转换为占四个字节的byte数组,(高位在前,低位在后的顺序)。
     *
     * @param value 要转换的int值
     * @return byte数组
     */
    public static byte[] intToBytes(int value) {
        byte[] src = new byte[4];
        src[0] = (byte) ((value >> 24) & 0xFF);
        src[1] = (byte) ((value >> 16) & 0xFF);
        src[2] = (byte) ((value >> 8) & 0xFF);
        src[3] = (byte) (value & 0xFF);
        return src;
    }

二、byte数组转int

1、当byte数组的长度为1时,占用1个字节

例如:

byte[] bytes= new byte[]{(byte) 0xF6};

0xF6 转换成二进制为 1111 0110

byte[] bytes= new byte[]{(byte) 0xF6};
int value = 	bytes[0]  & 0xFF;

(byte) (bytes[0] & 0xFF):这是一个与操作,0xFF是十六进制,转换成二进制为:1111 1111,转换成十进制为:255,当bytes[0]和0xFF按位与运算时,得到的是bytes[0]的最后8位(低8位),其余高位将被清零。

value的二进制就为:1111 0110,转换成十进制为:246

所以byte[] bytes= new byte[]{(byte) 0xF6};bytes转换位int就为:246

2、当byte数组的长度为2时,占用2个字节

例如:

byte[] bytes= new byte[]{(byte) 0x0E,(byte) 0x4A};

0x0E 转换成二进制为 0000 1110

0x4A 转换成二进制为 0100 1010

byte[] bytes= new byte[]{(byte) 0x0E,(byte) 0x4A};
int value = ((bytes[0] & 0xFF) << 8)  |  (bytes[1] & 0xFF)

bytes[0] & 0xFF :操作确保这个字节被当作无符号数处理
<< 8:这是一个左移位操作。如果 (bytes[0] & 0xFF) 得到了一个无符号的8位数值,那么 << 8 将这个数值向左移动8位。

((bytes[0] & 0xFF) << 8) 得到 0000 1110 0000 0000

(bytes[1] & 0xFF:操作确保这个字节被当作无符号数处理

(bytes[1] & 0xFF得到: 0100 1010

| 是按位或操作,它将左移后的第一个字节和第二个字节(同样经过位与操作以确保无符号处理)的值合并在一起,形成一个新的数值。

所以value的二进制为:0000 1110 0100 1010 ,转换成int为:3658

3、当byte数组的长度为3时,占用3个字节

例如:

byte[] bytes= new byte[]{(byte) 0x55,(byte) 0xCF,(byte) 0x6A};

0x55 转换成二进制为 0101 0101

0xCF 转换成二进制为 1100 1111

0x6A 转换成二进制为 0110 1010

byte[] bytes= new byte[]{(byte) 0x55,(byte) 0xCF,(byte) 0x6A};
int value = ((bytes[0] & 0xFF) << 16)  | ((bytes[1] & 0xFF) << 8)  |  (bytes[2] & 0xFF)

bytes[0] & 0xFF :操作确保这个字节被当作无符号数处理
<< 16:这是一个左移位操作。如果 (bytes[0] & 0xFF) 得到了一个无符号的8位数值,那么 << 16 将这个数值向左移动16位,低位补0。

((bytes[0] & 0xFF) << 16) 得到 0101 0101 0000 0000 0000 0000

bytes[1] & 0xFF :操作确保这个字节被当作无符号数处理
<< 8:这是一个左移位操作。如果 (bytes[0] & 0xFF) 得到了一个无符号的8位数值,那么 << 8 将这个数值向左移动8位,低位补0。

((bytes[1] & 0xFF) << 8) 得到 1100 1111 0000 0000

(bytes[2] & 0xFF:操作确保这个字节被当作无符号数处理

(bytes[2] & 0xFF得到: 0110 1010

所以value的二进制为:0101 0101 1100 1111 0110 1010 ,转换成int为:5623658

4、当byte数组的长度为4时,占用4个字节

例如:0x12E1A2FF

byte[] bytes= new byte[]{(byte) 0x12,(byte) 0xE1,(byte) 0xA2,(byte) 0xFF};

0x12 转换成二进制为 0001 0010

0xE1 转换成二进制为 1110 0001

0xA2 转换成二进制为 1010 0010

0xFF 转换成二进制为 1111 1111

byte[] bytes= new byte[]{(byte) 0x12,(byte) 0xE1,(byte) 0xA2,(byte) 0xFF};
int value = ((bytes[0] & 0xFF) << 24)  | ((bytes[0] & 0xFF) << 16)  
| ((bytes[1] & 0xFF) << 8)  |  (bytes[2] & 0xFF)

bytes[0] & 0xFF :操作确保这个字节被当作无符号数处理
<< 24:这是一个左移位操作。如果 (bytes[0] & 0xFF) 得到了一个无符号的8位数值,那么 << 24 将这个数值向左移动24位,低位补0。

((bytes[0] & 0xFF) << 24) 得到0001 0010 0000 0000 0000 0000 0000 0000

bytes[1] & 0xFF :操作确保这个字节被当作无符号数处理
<< 16:这是一个左移位操作。如果 (bytes[0] & 0xFF) 得到了一个无符号的8位数值,那么 << 16 将这个数值向左移动16位,低位补0。

((bytes[1] & 0xFF) << 16) 得到 1110 0001 0000 0000 0000 0000

bytes[2] & 0xFF :操作确保这个字节被当作无符号数处理
<< 8:这是一个左移位操作。如果 (bytes[0] & 0xFF) 得到了一个无符号的8位数值,那么 << 8 将这个数值向左移动8位,低位补0。

((bytes[2] & 0xFF) << 8) 得到 1010 0010 0000 0000

(bytes[3] & 0xFF:操作确保这个字节被当作无符号数处理

(bytes[3] & 0xFF得到: 1111 1111

| 是按位或操作,将4个字节拼接成一个新的数值

所以value的二进制为:0001 0010 1110 0001 1010 0010 1111 1111,转换成int为:316777215

总结:byte数组转int

将占四个字节的byte数组转换为int数值

    /**
     * 将占四个字节的byte数组转换为int数值,(高位在前,低位在后的顺序)。
     *
     * @param src 占四个字节的byte数组
     * @return int数值
     */
    public static int bytesToInt(byte[] src) {
        int value;
        value = (((src[0] & 0xFF) << 24)
                | ((src[1] & 0xFF) << 16)
                | ((src[2] & 0xFF) << 8)
                | (src[3] & 0xFF));
        return value;
    }
    /**
     * 将字节数组的一部分转换为整数。
     *
     * @param bytes  字节数组
     * @param start  起始位置(包含)
     * @param length 要转换的字节长度
     * @return 转换后的整数
     */
    public static int byteArrayToInt(byte[] bytes, int start, int length) {
        int result = 0;
        for (int i = start; i < start + length; i++) {
            result = result | ((bytes[i] & 0xFF) << ((start + length - i - 1) * 8));
        }
        return result;
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/578503.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据分析面试】32.矩阵元素求和 (Python: for…in…语句)

题目&#xff1a;矩阵元素求和 &#xff08;Python) 假设给定一个整数矩阵。你的任务是编写一个函数&#xff0c;返回矩阵中所有元素的和。 示例 1&#xff1a; 输入&#xff1a; matrix [[1, 2, 3], [4, 5, 6], [7, 8, 9]]输出&#xff1a; matrix_sum(matrix) -> 45…

Android 12 Starting window的添加与移除

添加&#xff1a; 04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.StartingSurfaceController.createSplashScreenStartingSurface(StartingSurfaceController.java:87) 04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.…

记录些 LLM 常见的问题和解析

1、提示校准为什么有助于减轻基于提示的学习中的偏见? 提示校准包括调整提示&#xff0c;尽量减少产生的输出中的偏差。 其他&#xff1a;微调修改模型本身&#xff0c;而数据增强扩展训练数据&#xff0c;梯度裁剪防止在训练期间爆炸梯度。 2、是否需要为所有基于文本的LL…

必应bing国内广告开户注册教程!

今天搜索引擎广告成为企业推广产品与服务、提升品牌知名度的重要渠道之一。作为全球第二大搜索引擎&#xff0c;必应Bing凭借其高质量的用户群体和广泛的国际覆盖&#xff0c;为广告主提供了独特的市场机遇。在中国&#xff0c;虽然必应的市场份额相对较小&#xff0c;但对于寻…

鸿蒙官网学习3

鸿蒙官网学习3 每日小提示项目的模块类型跨设备预览调试阶段应用的替换方式有两种 打开老的demo工程报错UIAbility 每日小提示 项目的模块类型 moduleType分为三种&#xff0c;只有1&#xff0c;2的模块支持直接调试和运行 entryfeaturehar 跨设备预览 需要手动在config.j…

在开发软件以便未来本地化到其他语言时需要考虑的事项

我们准备了一份关于开发软件以便未来本地化到其他语言时需要考虑的事项的简要指南。这非常重要&#xff0c;因为您的软件在其他国家市场上的销售可能会带来比本国市场更多的收入。 在开发软件时考虑到未来本地化到其他语言的一些重要方面包括&#xff1a; 设计多语言支持&…

C++—DAY4

在Complex类的基础上&#xff0c;完成^&#xff0c;<<&#xff0c;>>&#xff0c;~运算符的重载 #include <iostream>using namespace std; class Complex {int rel;int vir; public:Complex(){}Complex(int rel,int vir):rel(rel),vir(vir){}void show(){c…

【每日刷题】Day26

【每日刷题】Day26 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. [NOIP2008]笨小猴_牛客题霸_牛客网 (nowcoder.com) 2. 添加逗号_牛客题霸_牛客网 (nowcoder.com) …

windows/linux 安装php的 sql server 扩展

Windowsphpstudyphp7.1 下载&#xff1a;ODBC、下载php 的sql server 扩展 路径&#xff1a;下载地址 版本&#xff1a;我的是7.1 对应的ODBC 是13&#xff0c;php 的sql server 扩展为4.3 安装&#xff1a;msodbcsql 直接安装、sqlsrv43 安装完把 扩展复制到php71 的扩展文…

Python脚本抢票【笔记】

Python脚本抢票【笔记】 前言版权推荐Python脚本抢票【Python】microsoft edge驱动器下载以及使用最后 前言 2024-4-17 18:19:15 以下内容源自《【笔记】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是ht…

Unity WebGL 转换微信小游戏方案

方案特点 保持原引擎工具链与技术栈无需重写游戏核心逻辑&#xff0c;支持大部分第三方插件由转换工具与微信小游戏运行环境保证适配兼容&#xff0c;保持较高还原度微信小游戏平台能力以C# SDK方式提供给开发者&#xff0c;快速对接平台开放能力 技术原理 Unity的BuildTarget支…

【RocketMQ知识点总结-1】

文章目录 RocketMQ介绍RocketMQ架构&#xff1a;NameServer:BrokerProducerTopic&#xff08;主题&#xff09;&#xff1a;Queue&#xff08;队列&#xff09;&#xff1a;Message&#xff08;消息&#xff09;&#xff1a; RocketMQ的工作流程RocketMQ的使用场景异步消息传递…

【数据结构】Map和Set(1)

&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;个人主页&#x1f388;&#x1f388;&#x1f388;&#x1f388;&#x1f388; &#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;数据结构专栏&#x1f388;&#x1f388;&#x1f388;&…

【c++】探究C++中的list:精彩的接口与仿真实现解密

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章来到list有关部分&#xff0c;这一部分函数与前面的类似&#xff0c;我们简单讲解&#xff0c;重难点在模拟实现时的迭代器有关实现 目录 1.List介绍2.接…

【博特激光】激光焊接机在塑料领域的应用

激光焊接机在塑料领域的应用已经越来越广泛&#xff0c;这主要得益于其独特的优势和特性。激光焊接机利用激光束产生高能量、高温的条件&#xff0c;将塑料材料熔化并融合在一起&#xff0c;实现焊接的目的。 在塑料领域&#xff0c;激光焊接机主要用于各种塑料制品的焊接&…

【项目分享】用 Python 写一个桌面倒计日程序!

事情是这样的&#xff0c;我们班主任想委托我做一个程序&#xff0c;能显示还有几天考试。我立即理解了这个意思&#xff0c;接下了这个项目。 话不多说&#xff0c;来看看这个项目吧—— 项目简介 仓库地址&#xff1a;https://gitee.com/yaoqx/desktop-countdown-day 这是 …

C语言入门课程学习笔记-6

C语言入门课程学习笔记-6 第27课 - 字符数组与字符串&#xff08;上&#xff09;第28课 - 字符数组与字符串&#xff08;下&#xff09;第29课 - 数组专题练习&#xff08;上&#xff09;第30课 - 数组专题练习&#xff08;下&#xff09; 本文学习自狄泰软件学院 唐佐林老师的…

matplotlib 安装失败:Failed building wheel for matplotlib 解决方案

Python | Failed building wheel for matplotlib 朋友遇到 python 安装 matplotlib 时的问题&#xff0c;笔者帮忙远程调试(踩了不少坑)。网上的解决方案有很多无效&#xff0c;以此来记录以下个人解决方案。 在使用指令 pip install matplotlib出现如下报错&#xff1a; “…

移远通信再推系列高性能卫星、5G、GNSS及三合一组合天线

4月23日&#xff0c;全球领先的物联网整体解决方案供应商移远通信正式宣布&#xff0c;再次推出多款高性能天线产品&#xff0c;以进一步满足物联网市场对高品质天线产品的需求。 其中包括卫星天线YETN001L1A、三合一组合天线YEMA300QXA和YEMN302Q1A&#xff0c;外部5G天线YECN…

Unity对应的c#版本

本文主要是记录一下unity已经开始兼容c#的版本和.net版本&#xff0c;以便更好的利用c#的特性。 c#和.net对应情况 微软已经将.net开发到.net 9了&#xff0c;但是unity的迭代速度远没有c#迭代速度快&#xff0c;已知unity最新的LTS版本unity2023已经兼容了c#9 可以在unity手册…
最新文章