看看你的基础怎么样?

hbgzg3006 2008-11-17 04:27:05
int a=0200;
System.out.println((byte)a);
不运行,你认为应该输出什么?哈哈。
...全文
468 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijia0087 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 bao110908 的回复:]
int a=0200;
0200 是个八进制数,十进制值为 128

System.out.println((byte)a);
先看看 int 类型的 128 用二进制表示为:
0000 0000 0000 0000 0000 0000 1000 0000

再采用 byte 强制向下转型时会截取最低的 8 位,即截取到 1000 0000

byte 是有符号数,因此高位的 1 是个符号位,表示这个数是个负数。

byte 的 1000 0000 转为十进制表示可以这样做,将所有的非符号位取反,再加 1,最后添加负号就行了

[/Quote]
-128
beeone 2008-11-18
  • 打赏
  • 举报
回复
给大家个基础的java视频
java视频教程
《尚学堂马士兵 手把手java视频教程》第二版
http://www.ibeifeng.com/read.php?tid=887&u=73481]_尚学堂马士兵.rar
尚学堂150_j2se_笔记(推荐)
http://www.ibeifeng.com/read.php?tid=6251&u=73481]_尚学堂150_j2se_笔记.rar
【青岛实训 J2se基础培训】
http://www.ibeifeng.com/read.php?tid=1384&u=73481]J2se基础培训.rar
【尚学堂 马士兵J2SE全集】
http://www.ibeifeng.com/read.php?tid=1192&u=73481]_马士兵J2SE全集.rar
JAVA经典小程序集合
http://www.ibeifeng.com/read.php?tid=154&u=73481]_JAVA经典小程序集合.rar
《Java无难事 孙鑫的Java视频教程RMVB版全 cd9修正版》[ISO](超大完整版)
http://www.ibeifeng.com/read.php?tid=1135&u=73481]_Java无难事.rar
Java系列视频-提高java基础-包含oracle基础以及在eclipse中开发
http://www.ibeifeng.com/read.php?tid=1578&u=73481]_java基础.rar
lunarfan 2008-11-18
  • 打赏
  • 举报
回复
感觉你们学java的对底层了解的太少了,c/c++就不一样。
languo 2008-11-18
  • 打赏
  • 举报
回复
0开头8进制
0X开头16
yegushui 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 bao110908 的回复:]
int a=0200;
0200 是个八进制数,十进制值为 128

System.out.println((byte)a);
先看看 int 类型的 128 用二进制表示为:
0000 0000 0000 0000 0000 0000 1000 0000

再采用 byte 强制向下转型时会截取最低的 8 位,即截取到 1000 0000

byte 是有符号数,因此高位的 1 是个符号位,表示这个数是个负数。

byte 的 1000 0000 转为十进制表示可以这样做,将所有的非符号位取反,再加 1,最后添加负号就行了

比如:1000 …
[/Quote]
学习了
hbgzg3006 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 rongyunsheng 的回复:]
引用 18 楼 bigbro001 的回复:
引用 17 楼 ddjiang1115 的回复:
这道题实用吗


core java和thinking in java的区别,一个实用,一个理论,理论的好处就是可以装B

你的观点真的真的很独特…
[/Quote]
其实我更想看看大家对于强制转换的理解程度和补码的知识!~呵呵。
LadyFirst1204 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 bao110908 的回复:]
int a=0200;
0200 是个八进制数,十进制值为 128

System.out.println((byte)a);
先看看 int 类型的 128 用二进制表示为:
0000 0000 0000 0000 0000 0000 1000 0000

再采用 byte 强制向下转型时会截取最低的 8 位,即截取到 1000 0000

byte 是有符号数,因此高位的 1 是个符号位,表示这个数是个负数。

byte 的 1000 0000 转为十进制表示可以这样做,将所有的非符号位取反,再加 1,最后添加负号就行了

[/Quote]
讲解的很清楚啊,顶一下!
cupoy 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 bao110908 的回复:]
int a=0200;
0200 是个八进制数,十进制值为 128

System.out.println((byte)a);
先看看 int 类型的 128 用二进制表示为:
0000 0000 0000 0000 0000 0000 1000 0000

再采用 byte 强制向下转型时会截取最低的 8 位,即截取到 1000 0000

byte 是有符号数,因此高位的 1 是个符号位,表示这个数是个负数。

byte 的 1000 0000 转为十进制表示可以这样做,将所有的非符号位取反,再加 1,最后添加负号就行了

比如:…
[/Quote]
很好,就是这样
kao331431214 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 bao110908 的回复:]
int a=0200;
0200 是个八进制数,十进制值为 128

System.out.println((byte)a);
先看看 int 类型的 128 用二进制表示为:
0000 0000 0000 0000 0000 0000 1000 0000

再采用 byte 强制向下转型时会截取最低的 8 位,即截取到 1000 0000

byte 是有符号数,因此高位的 1 是个符号位,表示这个数是个负数。

byte 的 1000 0000 转为十进制表示可以这样做,将所有的非符号位取反,再加 1,最后添加负号就行了

比如:…
[/Quote]
学习了
timeport 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 bao110908 的回复:]
int a=0200;
0200 是个八进制数,十进制值为 128

System.out.println((byte)a);
先看看 int 类型的 128 用二进制表示为:
0000 0000 0000 0000 0000 0000 1000 0000

再采用 byte 强制向下转型时会截取最低的 8 位,即截取到 1000 0000

byte 是有符号数,因此高位的 1 是个符号位,表示这个数是个负数。

byte 的 1000 0000 转为十进制表示可以这样做,将所有的非符号位取反,再加 1,最后添加负号就行了

比如:…
[/Quote] jf
乐快乐 2008-11-18
  • 打赏
  • 举报
回复
前面是加零还是加“o”?
clarck_913 2008-11-18
  • 打赏
  • 举报
回复
呵呵

不会就学就行了

有人指出你的不足你应该感谢他

别老整什么语言好,什么语言不好。

开发软件的着眼点不一样,关注的细节也不一样。

发现自己不会就谦虚点,学了不就行了吗?

建议上面互相斗嘴的朋友看看我的空间的一篇文章

http://user.qzone.qq.com/37221597/blog/1226471873

把心思花在如何开发更好的产品上才更有意义

我想这也是CSDN创建的初衷
風男 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 hbgzg3006 的帖子:]
int a=0200;
System.out.println((byte)a);
不运行,你认为应该输出什么?哈哈。
[/Quote]

不运行我认为啥都不会输出,哈哈~~

越界了,当然是 -128
berlou 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 lunarfan 的回复:]
感觉你们学java的对底层了解的太少了,c/c++就不一样。
[/Quote]

感觉你们学c/c++的太自命不凡了, 像我以前同事, 非要抓住for循环中++i比i++的效率高, 坚持让所有人都那么写。
其实他不知道有这个功夫不如多写几段代码, 这种++i和i++的简单问题编译器一般会自动优化。
你们别懂得点小把戏就觉得可以嘲笑别人了, 做应用和做底层还不是很一样。 在嵌入式系统中我承认c语言有些优势, 尤其对内存的控制非常到位, 但是在应用系统中, 你们还是闭嘴吧, 现在和java竞争的是C#和其他一些动态脚本语言。
berlou 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 bigbro001 的回复:]
引用 17 楼 ddjiang1115 的回复:
这道题实用吗


core java和thinking in java的区别,一个实用,一个理论,理论的好处就是可以装B
[/Quote]

非常赞同。
rongyunsheng 2008-11-17
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 bigbro001 的回复:]
引用 17 楼 ddjiang1115 的回复:
这道题实用吗


core java和thinking in java的区别,一个实用,一个理论,理论的好处就是可以装B
[/Quote]
你的观点真的真的很独特…

LBreathy 2008-11-17
  • 打赏
  • 举报
回复
明白了,知道在Java中8进制,10进制和16进制的区别了~
feisun111 2008-11-17
  • 打赏
  • 举报
回复
八进制以0开头。十六进制以0x开头。
zeroxyz 2008-11-17
  • 打赏
  • 举报
回复
原来如此
java_mobile 2008-11-17
  • 打赏
  • 举报
回复
按22楼的算可以得出正确答案....
加载更多回复(27)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧