一.十六进制,十进制,在ASCII中的表示对应关系
1. 0
十进制 | 十六进制 | 字符 |
---|---|---|
0 | 0 | NULL |
0x01 //数值表达方式
'\x00' //十六进制字符表达
"\x00" //十六进制字符串
2.tab
* 字符表示
十六进制 '\x09'
或者 '\t'
* 字符串表达
"\x09\t" 2个字符
3.\n 换行符,新的一行
* 字符表示
'\n' 或者十六进制 'x0a'
4. \r 回车
也支持换行.看在哪种操作系统上
* 字符表达
或者 '\r' 或者十六进制 '\x0d'
* 字符串表达
windows 回车换行
"\r\n" 2个字符,必须用字符串
或者
十六进制表达 "\x0d\x0a"
linux
'\n' //换行
mac
'\r' //换行
二.我们看到的字符和字符之间的宽度和,存储在磁盘的宽度是2回事
- 比如内存中存储的是
0x61 0A 61
编辑器打开后,把0x61翻译成a,把0A翻译成tab,把61翻译成b----> a换行b
1. "a\tb" 字节问题
len3,占用都是3个字节
"a空格b" 内存中 "0x61 20 61 "
"atabb" 内存中 "0x61 0A 61 "
"a\tb" 内存中 "0x61 0A 61 " \t是一个字节
2.有的编辑器不支持键盘上的"tab键"编程时候保险的方式 用\t
func main() {
s1 := "a b" //a和b中间按的是键盘上的"tab键".有的编辑器不支持
s2 := "a\tb" //保险做法:\t
s3 := "a\x09b" //不要看表面,要看内存
s4 := "a\tb" //如果要显示"",用\转义
fmt.Println(s1, s2, s3, s4)
}
3.明确长度,换行符要,写清楚,由于编辑器的问题,否则不准确
s4 := "a\nb"
fmt.Println(s4, len(s4), []byte(s4))
}
三.字符串笔记大小
*字符串笔记,比较的是ascii
//字符串比较大小.比较的是ascii里的十六进制
fmt.Println('A' > 'a')
fmt.Println("a" > "A")
fmt.Println("AA" > "Aa")
fmt.Println("AAa" > "AaA")
标签:十六进制,61,fmt,s4,Println,4week,字符串
From: https://www.cnblogs.com/john5yang/p/17035397.html