2 cool0532 cool0532 于 2016.01.22 21:05 提问

关于char与byte类型的一些问题

首先说一下我的理解,不知道对不对,
byte 字节 8个二进制位(bit)
char类型 占用2个字节 也就是16个二进制位

那么问题来了,一个英文字母是几个字节,是根据类型来的吗???
那String str = “hello” 这是几个字节???有人能帮着解释解释吗

6个回答

caozhy
caozhy   Ds   Rxr 2016.01.22 21:08

char类型 占用2个字节 也就是16个二进制位
什么语言,C语言是一个字节。有的语言是2个。

一个英文字母是几个字节,根据编码来。比如根据ascii编码,就是一个字节,根据unicode编码就是4个字节。

cool0532
cool0532 在java中,char应该是两个字节吧,你是做java方向的吗
接近 2 年之前 回复
rl529014
rl529014   2016.01.22 23:32

一个字节有八个位,这是确定了的事,但是不同数据类型具体占多少位,需要是没有明确规定的,根据系统而定

caozhy
caozhy   Ds   Rxr 2016.01.22 21:10

默认情况Java有一个默认编码,但是你也可以指定,比如
new String("str","编码")
那么占用的字节就不同了。

enpterexpress
enpterexpress   2016.01.22 22:52

数值类型byte占8个位
char字符类型根据字符集来判断一个字符占多少字节

QZC78
QZC78   2016.01.23 09:55

由于在内存中,byte是占一个字节,char是占两个字节,在一些情况下使用的时候会造成内存溢出的问题,所以会统一使用指定的编码格式进行转换,就算这个字段的存量不足,也会按照这个字段的类型匹配的字节储存运算

91program
91program   Ds   Rxr 2016.01.22 21:13

这句是不对的:char 类型 占用2个字节 也就是16个二进制位!
至少对于 C 语言来说, char 是一个字节。

对于 Unicode 版本,就不是 char,一般是 wchar_t 或者 TCHAR。这样,就是2个字节!

字符串,分为 Unicode 版本 / ASCII / UTF-8 等编码方式,各种编码方式占用的字节数是不相同的。定长编码,一般是 2 个字节;但有不定长的,需要根据实现字符而定。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!