首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Go基础之--数组和切片

数组 数组定义: 数组是具有固定长度并拥有零个或者多个相同数据类型元素序列 定义一个数组方法: var 变量名[len] type 例子: var a[5] int //3个整数数组 var a...[5]string //3个字符串数组 像上面这种定义方法,我们是指定了数组长度,但是还有如下定义方法: var a=[...]int{1,2,3} 如果把数组长度换为......,那么数组长度由初始化数组元素个数决定 数组每个元素是通过索引来访问,索引是从0开始 例如 数组var a[5]int 获取第一个元素就是a[0], 获取数组长度是通过len(a) 这里需要知道...,c长度以及容量 对比上面的定义其实很好明白 s 就好比slice底层数组 而对于b这个slice来说他是从数组第三个元素开始切片,切片时候是左闭右开原则 所以b长度是1 对于b容量根据定义我们知道是从数组第三个元素到数组最后...,其实返回每个value类型就是rune 而我们知道在go中双引号引起来是字符串string,在go中表示字符串有两种方式: 一种是byte,代表utf-8字符串单个字节值;另外一个是rune,

73990

Go语言基础之基本数据类型

注意事项: 获取对象长度内建len()函数返回长度可以根据不同平台字节长度进行变化。实际使用中,切片或 map 元素数量等都可以用int来表示。...而且还允许我们用 _ 来分隔数字,比如说: v := 123_456 表示 v 值等于 123456。 我们可以借助fmt函数来将一个整数以不同进制形式展示。...) join操作 byte和rune类型 组成每个字符串元素叫做“字符”,可以通过遍历或者单个获取字符串元素获得字符。...字符串底层是一个byte数组,所以可以和[]byte类型相互转换。字符串是不能修改 字符串是由byte字节组成,所以字符串长度是byte字节长度。...修改字符串 要修改字符串,需要先将其转换成[]rune或[]byte,完成后再转换为string。无论哪种转换,都会重新分配内存,并复制字节数组

48920
您找到你想要的搜索结果了吗?
是的
没有找到

Java基础-数据类型

表示形式如下: char c1 = 'A'; // 使用单个字符 char c2 = 65; // 使用十进制整数(Unicode 值),[0, 65535] char c3 = '\u0061';...// 使用十六进制整数,格式'\uXXXX',('\u0000'~'\u00FF') 注:常用字符 unicode 1)a~z: a为97,b为98,...其余以此类推(z为97+25=122) 2...5.3 其他(了解) 1)隐含强 整数默认类型是 int。 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。...String对象一旦被创建就固定不变了,对String对象任何改变都不影响到原对象,相关任何change操作都会生成新对象。...[] arr = new int[3]; // [0, 0, 0] 3)几点注意: 数组是定长:一旦初始化完成,数组长度固定了,不能更改。

23432

Go语言核心36讲(Go语言实战与应用十四)--学习笔记

我还说过,虽然我们可以直接把一个整数值转换为一个string类型值。...所以我们可以换一种方式来展现这个字符序列: => runes(hex): [47 6f 7231 597d 8005] 可以看到,五个十六进制数与五个字符相对应。...一个字节编码值被转换为整数之后,不会大到哪里去。 而后三个十六进制数7231、597d和8005都相对较大,它们分别表示中文字符'爱'、'好'和'者'。...注意,对于一个多字节 UTF-8 编码值来说,我们可以把它当做一个整体转换为单一整数,也可以先把它拆成字节序列,再把每个字节分别转换为一个整数,从而得到多个整数。...因为它是一个中文字符,所以由字节序列中第三、四、五个字节共同表达,其十六进制表示也不再是单一整数,而是e7、88和b1组成序列。

22931

Go 语言基本数据类型

注意事项:实际项目中整数类型、切片、 map 元素数量等都可以用 int 来表示。在涉及到二进制传输、为了保持文件结构不会受到不同编译目标平台字节长度影响,不要使用 int 和 uint。...v := 0o377,代表八进制377,相当于十进制 255。v := 0x1p-2,代表十六进制 1 除以 2²,也就是 0.25。...我们可以借助 fmt 函数来将一个整数以不同进制形式展示。...字符串底层是一个 byte 数组,所以可以和[]byte 类型相互转换。字符串是不能修改 字符串是由 byte 字节组成,所以字符串长度是 byte 字节长度。...类型 int32 7、修改字符串 要修改字符串,需要先将其转换成[]rune 或[]byte,完成后再转换为 string。

9010

【Go语言精进之路】构建高效Go程序:了解string实现原理并高效使用

2.1 字符串底层结构 在Go语言中,字符串是一个只读字节切片。实际上,字符串是一个结构体,它包含一个指向底层字节数组指针和一个长度字段。...这个设计使得字符串可以高效地进行长度计算和内容访问。 2.2 字符串与字节切片关系 由于字符串在内部是一个字节数组,因此可以方便地与字节切片进行互相转换。...已知长度:预分配切片可以提供最佳性能。 固定片段拼接:strings.Join 简洁且高效。 通过合理选择和使用这些方法,我们可以在不同场景下高效地构造字符串,从而提升Go语言程序整体性能。...字符串转换为整数 使用 strconv.Atoi 或 strconv.ParseInt 将字符串转换为整数: package main import ( "fmt" "strconv"...: 12345 } } 整数换为字符串 使用 strconv.Itoa 或 strconv.FormatInt 将整数换为字符串: package main import ( "fmt

9010

二进制与十进制,八进制,十六进制转换_十进制十六进制算法

下图演示了如何将二进制整数 1110111100 转换为八进制: 从图中可以看出,二进制整数 1110111100 转换为八进制结果为 1674。...下图演示了如何将八进制整数 2743 转换为二进制: 从图中可以看出,八进制整数 2743 转换为二进制结果为 10111100011。...2) 二进制整数十六进制整数之间转换 二进制整数换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算顺序是从低位向高位依次进行,高位不足四位用零补齐。...下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制: 从图中可以看出,二进制整数 10 1101 0101 1100 转换为十六进制结果为 2D5C。...下图演示了如何将十六进制整数 A5D6 转换为二进制: 从图中可以看出,十六进制整数 A5D6 转换为二进制结果为 1010 0101 1101 0110。

4K30

C语言常用一些转换工具函数收集

:0x13 0xAA 0x02为字符串:”13AAA2” 3、字符串十进制 代码实现: 第一种,如果带负号 这个就是atoi函数实现: int my_atoi(const char *str) {...buf; u32 ires=0,fres=0; u8 ilen=0,flen=0,i; u8 mask=0; int res; while(1) //得到整数和小数长度...代码实现: 如果只是单个十进制字符串,使用sprintf函数就可以了。...这里写图片描述 字符‘A’ , 一个字节8bit ,即u8 十六进制为 0x41 二进制为 0100 0001 而对应十进制为 65 整型65,4个字节32bit,即u32 十六进制为 0x41 二进制为...0000 0000 0000 0000 0000 0000 0100 0001 将u32数转换成u8数组 注意:这里是字符数组,不是字符串 字符串是以空字符(\0)结尾char数组 void U32ToU8Array

94510

C语言常用一些转换工具函数!

:0x13 0xAA 0x02为字符串:”13AAA2” 3、字符串十进制 代码实现: 第一种,如果带负号 这个就是atoi函数实现: int my_atoi(const char *str) {...buf; u32 ires=0,fres=0; u8 ilen=0,flen=0,i; u8 mask=0; int res; while(1) //得到整数和小数长度...代码实现: 如果只是单个十进制字符串,使用sprintf函数就可以了。...13 14为字符串“1314” 5、u8、u32换 举个栗子:ASCII码里 这里写图片描述 字符‘A’ , 一个字节8bit ,即u8 十六进制为 0x41 二进制为 0100 0001 而对应十进制为...65 整型65,4个字节32bit,即u32 十六进制为 0x41 二进制为 0000 0000 0000 0000 0000 0000 0100 0001 将u32数转换成u8数组 注意:这里是字符数组

1.3K20

聊聊Go语言中数组与切片

数组 数组是一个由固定长度特定类型元素组成序列,一个数组可以由零个或多个元素组成。因为数组长度固定,因此在 Go 语言中很少直接使用数组。...数组长度必须是常量表达式,因为数组长度需要在编译阶段确定。...一个 slice 类型一般写作[]T,其中 T 代表 slice 中元素类型;slice 语法和数组很像,只是没有固定长度而已。...(runes, r) } fmt.Printf("%q\n", runes) // "['H' 'e' 'l' 'l' 'o' ',' ' ' '世' '界']" 为了提高内存使用效率,新分配数组一般略大于保存...通过在每次扩展数组时直接将长度翻倍从而避免了多次内存分配,也确保了添加单个元素操作平均时间是一个常数时间。

43830

03 . Go之数据类型和运算符

= isGirl) } 字符类型(byte和runne) 字符串每一个元素叫做"字符",在遍历或者单个获取字符串元素时可以获得字符 Go语言字符有以下两种: 一种是uint8类型,或者叫byte...Go语言同样支持 Unicode(UTF-8),因此字符同样称为 Unicode 代码点或者 runes,并在内存中使用 int 来表示。...与操作系统架构无关类型都有固定大小,并在类型名称中就可以看出来: 整数 int8(-128 -> 127) int16(-32768 -> 32767) int32(-2,147,483,648...# %o 表示为八进制octal # %q 该值对应单引号括起来go语法字符字面值,必要时会采用安全转义表示quotation # %x 表示为十六进制,使用a-f hex # %X 表示为十六进制...go语法字符串字面值,必要时会采用安全转义表示 # %x 每个字节用两字符十六进制数表示(使用a-f) # %X 每个字节用两字符十六进制数表示(使用A-F) (六)、指针 # %p 表示为十六进制

52010

进制转换

然后,分别计算出对应十进制数值,最后,在把每个十进制数据组合起来,就是一个十六进制数据。将二进制数据10110110换为十六进制数据,如图所示: ? 规则:进制越大,表现形式越短。...十进制数据20换为八进制数据24,如图所示: ? 十进制数据20换为十六进制数据14,如图所示: ? 3. 快速进制转换法 8421码,是bcd码一种。...二进制整数:由0和1两个数组成,进位规则是逢二进一,并且以0b/0B开头数,如0b101(转换成十制数后为5)、0b1010(转换成十进制数后为10)。...4.2 hex()函数 hex()函数用于将整数换为以0x开头十六进制字符串形式。...hex()函数语法格式如下: hex(x) # 参数x:要转换整数 # 返回值: 返回一个以0x开头十六进制字符串 使用hex()函数将下面的整数换为十六进制字符串形式,代码如下: print

2.6K10

【蓝桥杯备赛系列 | 简单题】十六进制八进制、十六进制十进制、十进制十六进制 (手撕)

输入格式   输入第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由09、大写字母AF组成字符串,表示要转换十六进制整数,每个十六进制长度不超过100000。...我们将其换为Long型,依旧范围不够,也需要进行读取十六进制,而其中valueof函数本质也是调用了 praseint ,范围太大爆掉。...以下是一个简单示例代码,它演示了如何将字符类型数字转换为整数类型: char c = '5'; int num = c - '0'; System.out.println(num); // 输出结果为...8位十六进制数字符串,将它转换为十进制数后输出。   ...给出一个非负整数,将它表示成十六进制形式。 输入格式   输入包含一个非负整数a,表示要转换数。

2.5K40

【Leetcode -405.数字转换为十六进制数 - 409.最长回文串】

Leetcode -405.数字转换为十六进制数 题目:给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。...如果要转化数为0,那么以单个字符’0’来表示;对于其他情况,十六进制字符串中第一个字符将不会是0字符。 给定数确保在32位有符号整数范围内。...示例 1: 输入 : 26 输出 : “1a” 示例 2: 输入 : -1 输出 : “ffffffff” 我们思路是将这个数num二进制转换成十六进制,num二进制中,每四位就会转换为十六进制一位数...示例 2 : 输入 : s = “a” 输出 : 1 示例 3: 输入 : s = “aaaaaccc” 输出 : 7 我们思路是,用一个hash数组记录字符串中字符出现次数,count记录回文串长度...的话只保留一个,因为在回文串中是对称,只能有一个奇数字符;具体代码和注释如下: int longestPalindrome(char* s) { //创建一个hash数组长度

9010

【Golang】深究字符串——从byte rune string到Unicode与UTF-8

rune切片 []byte()将字符串转换为byte切片 由于都是Ascii码字符串,所以输出整数都一致 包含非ascii码字符串 package main import ( "fmt" "unicode...]byte长度为8 由于已经转换为[]rune,所以长度为4 utf8.RuneCountInString()获取UTF-8编码字符串长度,所以跟[]rune一致 6.汉字输出详解 package...超出这个范围,go在转换时候,就会把多出来数据砍掉;但是runebyte,又有些不同:会先把rune从UTF-8换为Unicode,由于Unicode依然超出了byte表示范围,所以取低8位,其余全部扔掉...7.总结 Go 语言中字符串是一个只读字节切片 声明任何单个字符,go语言都会视其为rune类型 []rune()可以把字符串转换为一个rune数组(即unicode数组) 一个rune就表示一个...Unicode字符 每个Unicode字符,在内存中是以utf-8形式存储 Unicode字符,输出[]rune,会把每个UTF-8换为Unicode后再输出 []byte()可以把字符串转换为一个

2.1K10

二进制如何十进制?_二进制转换为十进制算法

1、计算机数制介绍 数制:计数方法,指用一组固定符号和统一规则来表示数值方法 数位:指数字符号在一个数中所处位置 基数:指在某种进位计数制中,数位上所能使用数字符号个数 位权:指在某种进位计数制中...小数转换为二进制方法:对小数点以后数乘以2,有一个结果吧,取结果整数部分(不是1就是0喽),然后再用小数部分再乘以2,再取结果整数部分……以此类推,直到小数部分为0或者位数已经够了就OK了。...4.2、二进制转换为十进制 二进制十进制转换原理:从二进制右边第一个数开始,每一个乘以2n次方,n从0开始,每次递增1。然后得出来每个数相加即是十进制数。...4.3、十进制转换为十六进制 4.4、十六进制换为十进制(这里不再展示过程,不常用) 十六进制十进制数方法:十六进制数按权展开,从十六进制右边第一个数开始,每一个乘以16n次方,n从0开始...然后得出来每个数相加即是十进制数。 4.5、二进制十六进制(这里不再展示过程,不常用) 方法为:与二进制八进制方法近似,八进制由三个二进制数表示,十六进制是四个二进制数表示。

2.8K20

Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)

那么,我们需要思考是,我们如何将上面的指令,转换为pyserial库进行写操作时(write)所需要bytes类型。...可以看到,我们通过binascii中函数,对发送过来数据进行转换,转换成了我们能够看看懂命令字符串。 接下来,我们如何将收到命令,转换为文字?...如何将十六进制换为字节流? ? 上述两个方法均可。 总结 由于对上述知识点不是特别熟悉,所以表述可能有一定混乱。当初想实现上述几点功能时也费了很大劲,所以才写在这里供以后后续使用。...(s ) 将序列 s 转换为一个列表 chr(x ) 将一个整数换为一个字符 unichr(x ) 将一个整数换为Unicode字符 ord(x ) 将一个字符转换为整数值 hex...(x ) 将一个整数换为一个十六进制字符串 oct(x ) 将一个整数换为一个八进制字符串 以上这篇Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)就是小编分享给大家全部内容了

5.9K20
领券