A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄方 中级黑马   /  2012-3-5 13:21  /  2085 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

wang耀雨 发表于 2012-3-5 15:12
只要是存在计算机上的数据都是二进制数据(视频、图片、声音等),8个二进制数(0和1)组成一个字节(即二 ...

感谢刘老师鼓励!
回复 使用道具 举报
       byte   int   long   short   char   double  float 是各占多少个字节呀?大小顺序又是怎么样的呀?还有 int  test=‘A’+ 'B'    为什么可以这样表示呀?而char =‘a’+'b'怎么不行啊?求解!
   

11 个回复

倒序浏览
byte--8位,short--16位,int--32位,long--64位,float--32位,double--64位
回复 使用道具 举报
基本类型字节数书上都有,楼上都说的很好,我就不多说了。
至于int  test=‘A’+ 'B'    实现根据ascii码表找到'A','B'对应的整型值后再进行加减的。
char =‘a’+'b' 我试验了,不是不可以,只是'a'+'b'得到的整型值是195对应的char 是Ã,特殊字符打印不出来。
lz可打印System.out.println('('+'$');试试,结果是 L。
回复 使用道具 举报
只要是存在计算机上的数据都是二进制数据(视频、图片、声音等),8个二进制数(0和1)组成一个字节(即二进制数据的基本单位是8位),由于 int   long   short   char   double  float和byte(字节)一样都是数据类型,楼主更规范的说法是说各占多少位,位数多所能表现的数据范围就大,楼上已经说过他们各占多少位我就不再一一道来。
还有 int  test=‘A’+ 'B'    为什么可以这样表示呀?而char =‘a’+'b'怎么不行啊?:所谓计算机上的数据都是二进制数据,字符也不例外,在计算机内存中,被计算机收录的每个字符都有其对应的值,例如010..001——A,
011..001——B……这就构成了编码表ASCii,而每个字符所对应的值就是所谓的 ASCii值,所以在 int  test=‘A’+ 'B'中,由于test是int类型的数据是把A、B当做所对应数值来进行运算的;而char =‘a’+'b'之所以不可以这样运算是因为赋值号左边的变量也是字符类型,而字符与字符不具备运算的规则,但是字符都有相连接的规则,“+”既可以用来数值之间的加法运算,又可以用来连接字符与字符,但是char是单个字符的类型,如果必须要‘a’和'b'相+(连接),则左边的数据类型必须是字符串类型的,即相加后的结果是string类型的“ab”;参考毕老师视频0204到0219进制以及转换!忘采纳

评分

参与人数 1技术分 +2 收起 理由
职业规划-刘倩老师 + 2 赞一个!

查看全部评分

回复 使用道具 举报
wang耀雨 发表于 2012-3-5 15:12
只要是存在计算机上的数据都是二进制数据(视频、图片、声音等),8个二进制数(0和1)组成一个字节(即二 ...

谢谢你的回答。我收获很大!呵呵,,,
回复 使用道具 举报
想问一下,char占位,有的说是2个字节,有说是一个
回复 使用道具 举报
gbk一个汉字是2位》?utf-8是3位?
回复 使用道具 举报
int  test=‘A’+ 'B'    是转换成数值计算了
char test=‘A’+ 'B'   在对字符进行操作时,+ 这个符号起的是连接符的作用!
回复 使用道具 举报
基础中的基础,不行就死记硬背吧!
回复 使用道具 举报
王杰 黑马帝 2012-3-6 00:25:57
11#
是char test =‘a’+'b'吧, 当然不行了,char是字符型,一个字节,八个位,你把两个八位的字符装在一个八位里是不可以的。
回复 使用道具 举报
舞动的心弦 发表于 2012-3-5 20:02
谢谢你的回答。我收获很大!呵呵,,,

哈哈,以前学过7个月的计算机编程都没搞明白,我也是听了毕老师的课恍然大悟才会记得这么清楚的,相信黑马的力量!

评分

参与人数 1技术分 +1 收起 理由
admin + 1 O了

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马