大端法,小端法,位域[1]

浅谈大小端(Endian)与位域 多次从坑中爬出来后对大小端的知识总结 阅读详情

 

大端法和小端法(1)

                                                                                                                              Monday, September 24, 2007

 

 

如果文件中存储的一段数据为 ----------- 10001010 10100100 -------------(以大端法表示的数据)

 

 

如何拼接成Java的int类型,如何拼接成C++的int类型。

 

现在假设内存上的

(736424) 10001010                     //低地址736424

(736425) 10100100                     //高地址736425

 

现在知道这两块内存存放的是用大端法表示的无符号整数!(大端法――低地址存放高位, X86平台存放文件小端法),

 

分别用C++和Java求解上面的整数?

 

//例a   (java)

class  Test

{

       public static void main(String[] args)

       {

              //(736424)      10001010

              //(736425)      10100100                     高位在前的无符号整型

              byte[] buf = new byte[2];

              buf [0] = (byte)0x8A;//低地址存放高位

              buf [1] = (byte)0xA4;//高地址存放低位

              int result = (( buf[0] < 0 ? 256 + buf[0] : buf[0] ) << 8 ) | (buf[1] < 0 ? 256 + buf[1] : buf[1]);

              System.out.println(result);

              System.out.println(Integer.toBinaryString(result));

       }

}

//snail:因为byte是有符号数,如果最高位是1,在进行移位操作时前会自动提到int(也可能是移好位再提升的,没有验证),在符号位前的所有24位会填充1,这样就会导致问题,要避免这个问题,可以像上面程序buf[0] < 0 ? 256 + buf[0] : buf[0]这样处理。只要执行下面三行,就知道是如何填充的了。

byte data = (byte)0x8F;

System.out.println(data);

System.out.println((int)data);

上面buf[0] < 0 ? 256 + buf[0] : buf[0]的意思将buf展开成整型的时候可以忽略符号位的影响。

下面 C++就没有这个麻烦,只要把映射2个地址的时候用unsigned char映射就行了,就不会认为最高位为符号位,在进行类型提升的时候也不会自动填充符号位1,见例b.

 

 

//例b    (C++)

#include <iostream>

 

using namespace std;

 

int main(int argc,int argv[]){

       //10001010 10100100  高位在前的无符号整型

       unsigned char buf[2];

       buf[0] = (char)0x8A;

       buf[1] =  (char)0xA4;

       int result = buf[0] << 8 | buf[1];

       cout << result << endl;

       return 0;

}

 

 

 

上面这个问题的讨论不涉及到位顺序,只涉及到字节顺序,实际上大端法和小端法表示的文件在位顺序是不是相反的呢?

(我原本一直以为是相反,而且从程序的种种迹象也表明是相反,但其实没有相反)

 

 

 

C++基本知识:

C++的一个char类型几乎都包含8个二进制位,因此它可以保存256种不同的值。

 

与char不同的是,普通的int总是有符号的.(说明默认的char不一定总是有符号的)

 

一个char是有符号的还是没符号的?

不幸的是,关于普通char如何选择的问题是由实现决定的。

 

char c = 255;   //255是”全1”, 十六进制的0xFF

int i = c;

cout << c << endl;   // c 等于 -1;

在windows平台 x86环境,g++ v3.8编译器编译下 默认的char类型是有符号的!

 

 

 

下面引用其他网上的两篇文章,对理解字节序的问题可能有帮助。

也谈字节序问题- [技术前沿]

Tag: 技术前沿

 

引用自 http://bigwhite.blogbus.com/logs/2005/09/

一次Sun SPARC到Intel X86的平台移植让我们的程序遭遇了“字节序问题”,既然遇到了也就不妨深入的学习一下。

一、字节序定义
字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。

其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。

在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian。引用标准的Big-Endian和Little-Endian的定义如下:
a) Little-Endian
就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
b) Big-Endian
就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
c)
网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。

其实我在第一次看到这个定义时就很糊涂,看了几个例子后也很是朦胧。什么高/低地址端?又什么高低位?翻阅了一些资料后略有心得。

二、高/低地址与高低字节
首先我们要知道我们C程序映像中内存的空间布局情况:在《C专家编程》中或者《Unix环境高级编程》中有关于内存空间布局情况的说明,大致如下图:
-----------------------
最高内存地址 0xffffffff
 | 
栈底
 .
 .             
栈
 .
  
栈顶
-----------------------
 |
 |
/|/

NULL (空洞) 

/|/
 |
 |
-----------------------
               
堆
-----------------------
未初始化的数据
----------------(
统称数据段)
初始化的数据
-----------------------
正文段(代码段)
-----------------------
最低内存地址 0x00000000

以上图为例如果我们在栈上分配一个unsigned char buf[4],那么这个数组变量在栈上是如何布局的呢[注1]?看下图:
栈底 (高地址)
----------
buf[3]
buf[2]
buf[1]
buf[0]
----------
栈顶 (低地址)

现在我们弄清了高低地址,接着我来弄清高/低字节,如果我们有一个32位无符号整型0x12345678(呵呵,恰好是把上面的那4个字节buf看成一个整型),那么高位是什么,低位又是什么呢?其实很简单。在十进制中我们都说靠左边的是高位,靠右边的是低位,在其他进制也是如此。就拿0x12345678来说,从高位到低位的字节依次是0x12、0x34、0x56和0x78。

高低地址和高低字节都弄清了。我们再来回顾一下Big-Endian和Little-Endian的定义,并用图示说明两种字节序:
以unsigned int value = 0x12345678为例,分别看看在两种字节序下其存储情况,我们可以用unsigned char buf[4]来表示value:
Big-Endian:
低地址存放高位,如下图:
栈底 (高地址)
---------------
buf[3] (0x78) --
低位
buf[2] (0x56)
buf[1] (0x34)
buf[0] (0x12) --
高位
---------------
栈顶 (低地址)

Little-Endian: 低地址存放低位,如下图:
栈底 (高地址)
---------------
buf[3] (0x12) --
高位
buf[2] (0x34)
buf[1] (0x56)
buf[0] (0x78) --
低位
---------------
栈顶 (低地址)

在现有的平台上Intel的X86采用的是Little-Endian,而像Sun的SPARC采用的就是Big-Endian。

三、例子
测试平台: Sun SPARC Solaris 9和Intel X86 Solaris 9
我们的例子是这样的:在使用不同字节序的平台上使用相同的程序读取同一个二进制文件的内容。
生成二进制文件的程序如下:
/* gen_binary.c */
int main() {
        FILE    *fp = NULL;
        int     value = 0x12345678;
        int     rv = 0;

        fp = fopen("temp.dat", "wb");
        if (fp == NULL) {
                printf("fopen error/n");
                return -1;
        }

        rv = fwrite(&value, sizeof(value), 1, fp);
        if (rv != 1) {
                printf("fwrite error/n");
                return -1;
        }

        fclose(fp);
        return 0;
}

读取二进制文件的程序如下:
int main() {
        int             value   = 0;
        FILE         *fp     = NULL;
        int             rv      = 0;
        unsigned        char buf[4];

        fp = fopen("temp.dat", "rb");
        if (fp == NULL) {
                printf("fopen error/n");
                return -1;
        }

        rv = fread(buf, sizeof(unsigned char), 4, fp);
        if (rv != 4) {
                printf("fread error/n");
                return -1;
        }

        memcpy(&value, buf, 4); // or value = *((int*)buf);
        printf("the value is %x/n", value);

        fclose(fp);
        return 0;
}

测试过程:
(1)
在SPARC平台下生成temp.dat文件
在SPARC平台下读取temp.dat文件的结果:
the value is 12345678

在X86平台下读取temp.dat文件的结果:
the value is 78563412

(1) 在X86平台下生成temp.dat文件
在SPARC平台下读取temp.dat文件的结果:
the value is 78563412

在X86平台下读取temp.dat文件的结果:
the value is 12345678

[注1]
buf[4]
在栈的布局我也是通过例子程序得到的:
int main() {
        unsigned char buf[4];

        printf("the buf[0] addr is %x/n", buf);
        printf("the buf[1] addr is %x/n", &buf[1]);

        return 0;
}
output:
SPARC
平台:
the buf[0] addr is ffbff788
the buf[1] addr is ffbff789
X86
平台:
the buf[0] addr is 8047ae4
the buf[1] addr is 8047ae5

两个平台都是buf[x]所在地址高于buf[y] (x > y)。

 

 

网络字节顺序、大端法、小端法    

引用自 http://blog.youkuaiyun.com/dodorunning/archive/2006/03/23/636605.aspx

在国内的4种短信协议的协议头部分,都定义了4个字节长度的message length字段,字段的数据类型为无符号整形(也就是说,这个字段的范围是0-2^16-1);而在java语言中,没有无符号整形这种数据类型(如果用int类型来表示,由于java中int型是有符号数,则会发送溢出),我设想将message length存入long类型中,将数字的大小控制在0-2^16-1范围之内,当超过此范围归零重新开始。

在网络传输时,将long类型先转化为byte数组,步骤如下:

long l;

byte[] b;

b[0]=(byte)(l>>>24);

b[1]]=(byte)(l>>>16);

b[2]]=(byte)(l>>>8);

b[3]]=(byte)(l);

此时,b[]中就按照网络字节顺序(大端法,即l的高位数据存放在byte[]的低位地址,因为地址是
从低向高发展的)存放着4个bytes的数据
使用OutputStream的public void write(byte[] b,int off,int len)方法来向Socket写字节流
,写byte[0]至byte[3]的字节。

 

java.io
Class OutputStream

write

public abstract void write(int b)                    throws IOException

Writes the specified byte to this output stream. The general contract for write is that one byte is written to the output stream. The byte to be written is the eight low-order bits of the argument b. The 24 high-order bits of b are ignored.

Subclasses of OutputStream must provide an implementation for this method.

 

Parameters:

b - the byte.

Throws:

IOException - if an I/O error occurs. In particular, an IOException may be thrown if the output stream has been closed.

write

public void write(byte[] b,                  int off,                  int len)           throws IOException

Writes len bytes from the specified byte array starting at offset off to this output stream. The general contract for write(b, off, len) is that some of the bytes in the array b are written to the output stream in order; element b[off] is the first byte written and b[off+len-1] is the last byte written by this operation.

The write method of OutputStream calls the write method of one argument on each of the bytes to be written out. Subclasses are encouraged to override this method and provide a more efficient implementation.

If b is null, a NullPointerException is thrown.

If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown.

 

Parameters:

b - the data.

off - the start offset in the data.

len - the number of bytes to write.

Throws:

IOException - if an I/O error occurs. In particular, an IOException is thrown if the output stream is closed.

 

 

 

大端模式和小端模式的区别 大端模式与小端模式的区别 阅读详情

相关推荐

判断CPU是大端还是小端

一、如何判断CPU是大端还是小端?明白大端和小端的区别,实现起来就非常简单:#include int main(){ union ut{   short s;   char c[2];  }u; if(sizeof(short) == 2) {  u.s = 0x0102;  if(u.c[0] == 1 && u.c[1] == 2)  {   printf("big enida

1万+

大小端,位域

大小端是指数据在内存中存放的顺序,大于一个字节的整数,在内存中低字节在前的就是小端,高字节在前的就是大端。用C语言程序来判断大端机还是小端机: #includeint main() { short x;   char x0;   x=0x1122;   x0=((char *)&x)[0];   if(x0==0x11)   printf("大端\n"); 

sunberryL的博客 729

MOS管开关设计知识-(五种MOS管开关电路图方式)

在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些因素。这样的电路也许是可以工作的,但并不是优秀的,作为正式的产品设计也是不允许的。 下面是我对MOSFET及MOSFET驱动电路基础的一点总结,其中参考了一些资料,非全部原创。包括MOS管的介绍,特性,驱动以及应用电路。 1、MOS管种类和结构 MOSFET管是FET的...

树卡花 7万+

嵌入式中的“大小端”问题和位域的注意点

在前面的代表的是低地址,在后面的代表的是高地址,和高低字节的顺序正好相反。2.在位域的定义中,同一个类型域永远都是先定义低地址,然后地址。uint8_t这个类型的8位,可以看到每一个类型域中后面的数字。如果是低字节排在低地址,高字节排在高地址,那就是小端,如果是低字节排在高地址,高字节排在低地址,那就是大端,在这里面,0x12就是高字节,0X78就是低字节。它有两个类型域,这两个类型域中的成员都共同划分了。我们也讲了什么是低字节,高字节,低地址,高地址。所谓的大小端问题,就是字节在地址上的排布问题。

2401_85521343的博客 403

RK3576处理器RT-Thread与Linux混合部署实现工业EtherCAT实时控制

实时操作系统(RTOS)是工业自动化领域的核心技术,通过精确的任务调度和中断响应机制确保微秒级控制精度。RT-Thread作为开源实时系统,采用优先级抢占式调度算法,能够满足运动控制和总线通信的硬实时需求。在工业显控一体设备中,实时系统需要与富应用系统协同工作,Linux系统负责图形界面和网络通信等非实时任务。混合部署架构通过共享内存和核间通信技术实现数据交换,既保证了实时性能又扩展了应用生态。EtherCAT工业以太网协议作为高性能现场总线,采用主从站结构和分布式时钟同步,可实现多轴运动控制的精确同步。R

weixin_33738982的博客 2627

【项目实战】小智AI MCP协议在IoT设备控制中的深度应用解析

本文深度解析小智AI MCP协议在IoT设备控制中的应用实践。通过MCP协议作为AI与物联网设备的翻译桥梁,实现大语言模型与ESP32等硬件的无缝通信。文章详细介绍了环境搭建、工具注册、消息路由机制,并以语音控制RGB灯光系统为例展示完整开发流程,为AIoT开发者提供实用指南。

oauth7security的博客 824

清晰解读C语言中的位域、字节序、比特序、大小端

一、比特序/位序 比特序表示一个字节中8个比特位(bit)之间的顺序问题。分为LSB 0 位序和MSB 0 位序。 LSB(least significant bit):数据的最低位存放在字节的第0位。 MSB (most significant bit):数据的最高位存放在字节的第0位。 例如有一个十进制的数为174,对应的二进制数为1010 1110. 1.在LSB 0 位序下,其存储形式如下图: 数据流的顺序为0-1-1-1-0-1-0-1 2.在MSB 0 位序下,其存储形式如下图: 数

qq_34907757的博客 5732

WebRTC音频传输实战:从采集到播放的完整链路解析(附RTP包处理细节)

本文深入解析了WebRTC音频传输的完整链路,从麦克风采集、音频处理与编码,到RTP打包、网络发送,再到接收端的NetEQ抗抖动处理与最终播放。文章以Linux PulseAudio为例,详细剖析了线程模型、缓冲区管理及RTP包处理等关键细节,旨在帮助开发者优化实时音频应用的延迟、卡顿与回声问题。

tea88的博客 851

什么是小端模式,什么是大端模式

字节序 前言 内存在读写数据的时候,都是以字节为单位进行读写的,其最小的读写单位也是字节。一个字节占8位,如果暂且只考虑无符号数,那么其能表示的范围只有0 ~ 255这256个整数数值。如果将一个字节数据存入内存,那么将很好的对这一个字节的数据进行读写操作。然而,事实上却是,现实生活中的数据往往都是大于一个字节的,例如,在我们现在常用的PC机(32位或64位)中,占用一个字节的数据类型很少很少了,常见的就char,int都需要占用4个字节,double更是占用8个字节。就因为这个原因,对于这个大于一个字节的

qq_20255275的博客 1万+

看懂 SAP S/4HANA 产品主数据里的 GTIN:一串号码背后的全球商品识别与业务协同

SAP S/4HANA中的GTIN管理是企业供应链运营的关键环节。本文深入解析GTIN的业务内涵及其在SAP系统中的实现方式:1) GTIN是全球通用的商品标识码,不同于企业内部物料编码;2) SAP主数据中GTIN与计量单位强绑定,需为不同包装层级维护独立GTIN;3) 同一产品可能因渠道、供应商差异存在多个GTIN;4) GTIN贯穿零售POS、仓储管理、EDI订单等核心业务流程;5) 通过典型案例说明错误维护GTIN将导致收银异常、仓库作业低效等运营问题。文章强调GTIN管理需结合包装层级、计量单位等

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1432

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测 目录时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测基本介绍ARIMAXVARVARMAVARMAXSESHWES参考资料 基本介绍 本文介绍ARIMAX、VAR、VARMA和VARMAX基本概念及其Python程序设计。 ARIMAX 具有外源回归量的自回归整合移动平均值(ARIMAX)是 ARIMA 模型的扩展,其还包括外生变量的建模。 外生变量也称为协变量,可以被认为是并行输入序列,其在与

前程算法屋的博客 6688

什么是大端法和小端法?

什么是大端法和小端法? 在几乎所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为所使用字节中的最小地址。 例如,假设一个类型为int的变量x的地址为0x100,即&x的值为0x100。那么x的4个字节将被存储在 存储器的0x100,0x101,0x102和0x103的位置。 字节序即为多字节对象存储在内存中的字节顺序,有两种不同的存储方案:大端法和小端法。现代的处理器大多为双端法,大小端都支持,可以配置称大端法或者小端法。 大端法 最高有效字节在最前面的方式称为大端法,例如假设变量x

赵北的技术博客 7548

DPABISurf使用教材

严老师的官方教程:http://rfmri.org/Course DPABISurf版本:dpabi50docker.tar.gz MATLAB版本:2018b 一、数据准备 (1)如果是数据的DICOM格式,整理成以下格式(注意文件夹的命名方式): 如果觉得不是很清楚,可以在官网下载Demo数据(http://rfmri.org/DemoData),参照里面的文件格式进行整理即可。 (2)如果数据是nii格式,整理成以下格式: 这里没有使用官网的demo数据进行学习,而是..

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 8515

关于大端法和小端法(CSAPP笔记)

字节的表示 数据的存储单位是字节,在大多数的机器上,一个字节的大小是8位,也就是8位的二进制数。我们知道,十六进制与二进制的转换关系是4位的二进制数可以转换为1位的十六进制数。一般地,一个字节用两位十六进制数表示。比如:[1100 1010] 就是 [0xCA] 大端法和小端法是什么? 说白了,大端法和小端法就是指的字节在内存中的存储顺序。很多对象都不是仅仅是一个字节的,也就是跨字节的,那么以哪种...

u010089106的博客 2593

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Motorola、Intel CAN 解析【结构体位域法】

Motorola、Intel CAN 解析【结构体位域法】 嵌入式软件开发中大多都与CAN打交道,但是不同项目CAN协议以及格式均会有一定的差异,软件如何处理才会更加便捷,更加模块化呢?本文主要是小端格式CAN软件解析 “负负得正,将小端格式CAN转换为大端格式” 一:大端小端DBC文件对比 [修改DBC文件中信号的格式,DBC...

陳.CHEN 5828

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

大端模式和小端模式转化

在工作中遇到一个问题,数据是以大端模式存储的,而机器是小端模式,必须进行转换,否则使用时会出问题。 一、定义: 大端模式(Big Endian):数据的高字节,保存在内存的低地址中;数据的低字节,保存在内存的高地址中。 小端模式(Little Endian):数据的高字节,保存在内存的高地址中;数据的低字节,保存在内存的低地址中。 例如: 16位宽的数0x1234,在不同的模式下,存储方

舒夜无痕--成为更好的自己 4万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

大端法与小端法

一个数0x1234 小端法(little endian),就是将最低有效字节放在前面,表示为 0x34 0x12 大端法(big endian),就是将最高有效字节放在前面,表示为 0x12 0x34 小端法违反直觉,但是主流操作系统都用这个 大端法符合习惯,用于网络字节流 需要澄清: 1. 具体字节是顺序排列还是倒序排列,是就一个具体的数据内部而言的,而数据与数据之间永远都是顺序存放 2. 比如说,如果数据占2个字节,那只有这两个字节是颠倒的,不会影响数据以外的内容 3. 字符串永远.

w112348的博客 1095

大端模式和小端模式

摘要:大端和小端是计算机存储多字节数据的两种字节序。大端将高位字节存储在低地址(如0x12345678存储为12 34 56 78),符合人类阅读习惯;小端将低位字节存储在低地址(如78 56 34 12),更适配CPU运算。主流x86架构采用小端,而网络协议等常用大端。可通过C/Python代码或二进制工具验证系统字节序,核心是检查多字节数据的低位字节是否位于低地址。开发时需注意字节序差异以避免数据解析错误。

2402_89729276的博客 2619

浅谈数据存储之大端法和小端法

说到大端法和小端法,就不得不提到数据在计算机内部的存储。首先,大多数计算机是使用一个字节作为可寻址的最小存储单位,也就是说,一个内存地址指向的存储空间的容量是一个字节,而我们可以把整个计算机的内存抽象为一个非常大的字节数组,数组的每一个元素占一个字节,并且都可以用唯一的数字来标识,这些数字即是我们平常说的内存地址。 如果说要存储的对象都是一个字节,那么用数组的一个元素就能存储,但假如要存储的对象

陈志杰的专栏 2045

小端法与大端法(MD5疑惑解1)

记得,在编写MD5时,有个疑惑是关于将int、long int等移置字符串中,它将变成反序。对此的了解是小端法与大端法的区别。 下面是所查的资料: 《UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。 也可以说:1.小端法(Little-E...

aixiang7408的博客 741

位域与大小端

大小端字节序介绍见:点击打开链接

AlbertoNo1的博客 4033

大端法和小端法

大端法和小端法 区别大端法和小端法的方式就是关注最高有效字节(也可以关注最低有效字节)。最高有效字节在低地址的存储方式称为大端法,最高有效字节在高地址的方式称为小端法。比如十六进制数字:0x01234567。那么我们首先要确定01是最高有效字节(十六进制数一个数字占4位,因此一个字节可以转换成两个十六进制数),67是最低有效字节。根据之前的介绍,如果系统是按大端法存储的话,那么大端法的输出应该是:...

Thincor的博客 774

大端法与小端法,记住!

一、什么是字节序 字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。 高/低地址: 指的是内存的高、低地址,计算机在内存中存放数据的顺序都是从低地址到高地址 高/低字节:有些文章中称低位字节为最低有效位,高位字节为最高有效位。如果我们有一个32位无符号整型0x12345678,那么高位是什么,低位又是什么呢? 其实很简单。在十进制中我们都说靠左边的是高位,靠右...

CSer 802
上一篇: Java网络编程基础 1 建立一个提供当前时间字符串的ServerSocket
下一篇: 写了个测试vector,map存取的小程序
飞羽飞之猪
博客等级 码龄21年 127粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值