社区
Java SE
帖子详情
为什么下面输出都是4呢?
alin19
2003-06-21 01:03:56
我有个地方不懂:
下面代码中ch和by长度为什么会一样?
byte是8位的,char是16位的,为什么下面输出都是4呢?
String st = "alin";
char[] ch = st.toCharArray();
byte[] by = st.getBytes();
//ch和by长度为什么会一样?
System.out.println("" + ch.length);
System.out.println("" + by.length);
...全文
39
11
打赏
收藏
为什么下面输出都是4呢?
我有个地方不懂: 下面代码中ch和by长度为什么会一样? byte是8位的,char是16位的,为什么下面输出都是4呢? String st = "alin"; char[] ch = st.toCharArray(); byte[] by = st.getBytes(); //ch和by长度为什么会一样? System.out.println("" + ch.length); System.out.println("" + by.length);
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
alin19
2003-06-23
打赏
举报
回复
顶下啊,简单问题啊
alin19
2003-06-23
打赏
举报
回复
ding
alin19
2003-06-22
打赏
举报
回复
可是在java里英文字母也是用unicode表示的啊?难道是单字节的?
XKP
2003-06-21
打赏
举报
回复
双字节编码的字符
都要用两个byte啊
所以如果你把by数组一个一个输出来
那会发现不是中文~~~~
因为要两个才能出来一个中文
alin19
2003-06-21
打赏
举报
回复
你们没明白我的意思啊:
String st = "我是谁";
char[] ch = st.toCharArray();
byte[] by = st.getBytes();
System.out.println("" + ch.length);
System.out.println("" + by.length);
output:
3
6
难道跟acsii重复的字符都用8位的表示,不重复的象汉字用16位unicode表示??好奇怪啊
newman0708
2003-06-21
打赏
举报
回复
应该是4,没有错啊!
alin19
2003-06-21
打赏
举报
回复
为什么不是Unicode码?
char[] ch = st.toCharArray();
byte[] by = st.getBytes();
//长度为什么会一样?
System.out.println("" + ch[0]);
System.out.println("" + (char)by[0]);
outPut:
a
a
ascii正好能放在8位里面,要是16位的Unicode,byte类型就放不下了啊
sgdb
2003-06-21
打赏
举报
回复
byte[]中是a,l,i,n对应的ascii
alin19
2003-06-21
打赏
举报
回复
难道String转换成byte[]时和转成char[]不是按照位数转的吗?
都是4个元素的话,每个元素存放什么呢?特别是byte[]中
helpall
2003-06-21
打赏
举报
回复
一共只有四个字符,数组的长度都是4.与"byte是8位的,char是16位的"无关.
XKP
2003-06-21
打赏
举报
回复
那只是具体编码方式的不同
具体的每一个字符编码方式不一样
length是说这个数组里面有多少个元素
而不是说占用了多少空间
MongDB数据库与C#的交互(游戏服务器基础)
详细内容如下: 1.MongDB是什么,以及它提供的可视化控制台,基础使用都包含哪些知识? 2.MongDB与C#交互之中,如何创建连接,如何连接到集合? 3.四大管理操作:增删查改,需要如何进行,异步的方式又是怎么样操作? 4.排序是...
为什么pow()函数使用%d
输出
一直为0?为什么整数使用%f
输出
也一直为0?
为什么pow()函数使用%d
输出
一直为0?为什么整数使用%f
输出
也一直为0?两者有何联系? 通过
下面
这个简单代码即可直观发现他们的
输出
#include<stdio.h> #include<math.h> int main() { printf("%d ",pow(2,0)); printf("%f ",1); printf("%f "...
以下代码的
输出
结果是什么?为什么?
for(var i=0;i<3;i++){ setTimeout(function(){ console.log(i); },0); }
输出
的结果是3个3,因为在主程序中遇到异步事件的时候,会将异步事件放到事件队列里面去,等到主程序执行完之后,在去执行事件队列里面的事件,此时主程序已经执行完,i变为3,由于每次
输出
都是i的值,所以是3个3 ...
输入了数据,为什么
输出
的结果为0.00?初学者容易犯的几种错误
printf
输出
用什么%(,)也没有那么讲究,根据需求来就行。但是double 定义的r,h要与%lf对应才可,否则会出现储存不了的情况。就是说如果你先写的
输出
语句后写的输入语句,那么结果会被计算机随机赋上0.作者也是刚刚学习C语言1个多月,有什么不足的地方欢迎各位大佬指正。其次定义不能用int(整形),以整形计算时,无论
输出
如何都为0。3,
输出
以%f或者%lf。2,计算时以浮点型计算。注意:用float定义时,用%lf或者%f输入都可以。那么
输出
不能为%d,否则因为显示不了小数而被计算为0。...
python同时
输出
多个值_python如何实现
输出
多个值?
相信大家都知道print函数,是可以做到值的
输出
的,但是
输出
内容是单一的,那如何做到可以
输出
多个值呢?一起来看下吧~除了print函数,help函数也可以进行多值
输出
。大家也可以了解下:
下面
演示一下这个函数的几种用法:(1)
输出
多个对象的值,改变多个值之间的分隔符#使用默认分隔符>>>print(1,3,5)135#使用指定的分隔符>>>print...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章