字节数,字符串长度,字符个数的区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节数,字符串长度,字符个数的区别?相关的知识,希望对你有一定的参考价值。

字节数,字符串长度,字符个数区别如下,以编程语言java为例:

1、字节数是变量在内存中占有的空间大小,如int类型占4字节,long类型占8字节等等,并且1字节(byte)=8比特(bit)。

2、字符串长度是你写的内容的长度,如定义String str = “hello”,那么str的字符串长度为5。

3、字符个数就是字符串包含多少个字符,如String str = “hello”,字符有h,e,l,l,o一共5个字符,所以字符个数为5个。

扩展资料:

字符串长度可以通过String自带的length方法求出,如String str = “hello”,它的字符串长度为str.length()。

字符个数在”数值“上与字符串长度相等,但并没有什么实际用途,只是定义上的区分罢了。

参考技术A

1、在纯ASCII码下,字节数=字符串长度=字符个数,一个英文字母占一个字节的空间,一个中文汉

字占两个字节的空间,一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,

换算为十进制,最小值0,最大值255。

2、在Unicode下,字节数/2=字符串长度=字符个数,一个英文等于两个字节,一个中文(含繁

体)等于两个字节,中文标点占两个字节,英文标点占两个字节,数据库中varchar(200)是指有200

个字节。 

3、在UTF-8编码下,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节,中文标点占

三个字节,英文标点占一个字节。

4、对于varchar类型,这是单字节字符,一个字符占用一个字节,总共能够表示的256个字符;而对

于nvarchar类型,一个字符占用两个字节,能够表示世界上所有的字符集,一个unicode字符占用

两个字节。

5、如果要计算字符串占用的字节数量请使用DataLength函数,该函数统计字节数量时,字符串的

所有字符都会计算在内,包括前导空格和结尾空格。

参考技术B 在纯ASCII码下,字节数=字符串长度=字符个数,因为每个字符就一个字节。
在Unicode下,字节数/2=字符串长度=字符个数,因为每个字符都是2个字节。
在ASCII码与其它双字节字符系统混用时,字节数=ASCII码字符个数+双字节字符个数*2,而此时字符串长度到底怎么统计就不好说了,有的语言如C语言,此时字符串长度=字节数,有的语言如JS,此时字符产长度=字符个数。本回答被提问者采纳
参考技术C p = "1234";

那么p的字符数就是4,4就是其长度,也可以理解为strlen和wcslen对字符串的返回值。

占用存储字节是该字符串在内存中所占用的存储空间的表示,还是上面那个字符串,其占用存储空间就是5,包括一个空字节,所以其占用字节数为5。因此C风格ASCII字符串的长度和其字符数是不同的,除了C风格字符串(以空字节结尾的字符串),其他ASCII字符串也有长度和占用存储空间相同的情况,比如STL中的string其内存占用空间就和字符长度相同,因为它不是用空字符来标识字符串结尾的。

所以对于ASCII字符串,其长度和所占字节数可能相同。

而对于宽字符wchar_t或unicode,其字符长度肯定和所占字节数不同。

wchar_t s[] = L"1234";

sizeof(s)是10,wcslen(s)是4。

知道了吧,简单点这2个概念也可以理解为sizeof和strlen或wcslen返回的长度。

SQLSERVER中nvarchar和varchar类型的区别是啥?

varchar(n):变长型字符数据类型,存储最长长度为8,000 个字符
nvarchar(n):可变长度 Unicode 数据,其最大长度为
4,000 字符.字节的存储大小是所输入字符个数的两倍,就是说它是双字节来存储数据的。如果存储数据如果存在单字节时,它也是以双字节来占用存储空间的。
varchar一般适用于英文和数字。
参考技术A 固定长度 (char) 或可变长度 (varchar) 字符数据类型。char[(n)]
长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的同义词为 character。
varchar[(n)]
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。注释如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。
将为使用 char 或 varchar 的对象被指派数据库的默认排序规则,除非用 COLLATE 子句另外指派了特定的排序规则。该排序规则控制用于存储字符数据的代码页。
支持多语言的站点应考虑使用 Unicode nchar 或 nvarchar 数据类型以尽量减少字符转换问题。如果使用 char 或 varchar:
如果希望列中的数据值大小接近一致,请使用 char。
如果希望列中的数据值大小显著不同,请使用 varchar。
如果执行 CREATE TABLE 或 ALTER TABLE 时 SET ANSI_PADDING 为 OFF,则一个定义为 NULL 的 char 列将被作为 varchar 处理。
当排序规则代码页使用双字节字符时,存储大小仍然为 n 个字节。根据字符串的不同,n 个字节的存储大小可能小于 n 个字符。本回答被提问者采纳

以上是关于字节数,字符串长度,字符个数的区别?的主要内容,如果未能解决你的问题,请参考以下文章

C语言字符串长度如何数?

C语言字符串长度如何数?

在SQL Server中测量字符串长度和字节长度

varchar和nvarchar区别

DECIMAL字段字节计算

javascript 中英文字符长度和截断处理