要素很多哈,我们先说 Java 的。

Java官方文档说了,An integer literal is of typelongif it ends with the letterLorl; otherwise it is of typeint. 换句话说,0xffffffff 的数据类型 type 只能是 int,0xffffffffL 的类型 type 只能是 long。另外 Java 的 int 和 long 都是默认 signed,都是从负数到正数的。(当然 Java 8 之后,这里有更新,某些情况下 int 和 long 也能 represent unsigned 的值,具体请看。)

如果不是 8个f,是9个f,long x = 0xfffffffff,那么 Java 会报错 The literal 0xfffffffff of type int is out of range 。间接说明了确实 0xffffffff 的类型被 Java 确定为(定死了是) int 。所以 @jinchamL 说的,我觉得是很对。我自己在 Java SE 8 的版本下,测试过了,结果也是一致的。(不清楚为啥你的结果不一样。。你的 Java/JDK 的版本是。。?)

那么为啥 C 里面的值不一样呢?

简而言之是因为 C 里面有 unsigned int,当然这里要先假设C语言的编辑器/硬件规定了 int 的大小是 4个 byte 而且 long 的大小是 8 个 byte,不然也可能输出不一样的值。所以 C语言下的 0xffffffff 先会被尝试能不能是 int 类型,不行的话尝试一下能不能是 unsigned int 类型,最终确定是 unsigned int 类型,因为 int 的范围里面没有 0xffffffff 这个数字大小(十进制的4294967295 / 2^32 - 1)。如果 unsigned int 不行的话就试试 long int 再 unsigned long int,以此类推,更多信息可以看这个 stackoverflow 的 link。

当然你写了 long x=(long)0xffffffff; 这里面的 (long) 是我上面说的都做完了,然后才会做 (long) 的 casting 。

最后的最后,我自己在B站上传的免费编程入门视频,专注于入门,由浅入深地服务零基础的同学们。里面一开始把计算机和C语言的最基础最重要的概念讲清楚 ➕ 代码示例和自己实时写代码测试。里面的所有的资料和代码都是公开在我的百度网盘里面https://www.bilibili.com/video/av65793738/​www.bilibili.com

谢谢哈

java 长整型long_C语言和java 长整型为何打印不同?相关推荐

  1. c语言和java哪个有前途_C语言和Java哪个更适合初学者?

    目前,无论是从应用范围还是流行程度来看,C语言和Java都是当下最为火热的编程语言.想要零基础入门编程的学习者在一开始的学习中都会碰到这样的难题:C语言和Java哪个更适合初学者?的确,编程语言的选择 ...

  2. c语言和java语法的区别_c语言和java语法有区别吗?

    c语言和java在语法上有区别,区别是: 1.C语言有指针,java没有指针: C语言的语法比较简单,但是它的亮点指针很容易出错,想要好好的运用指针是件很难的事情,用好了,对程序有很好的帮助,反之,就 ...

  3. java程序设计 c语言_C语言和Java编程有什么区别?

    C语言和Java编程有什么区别?Java从根本上说是c之后的一种改进语言,纯面向对象的一种编程语言(当然比起Ruby还是差一点),有了C语言的基础固然对学习Java有帮助,因为在某种程度上Java和C ...

  4. c语言和java哪个有前途_C语言和Java哪个难学

    C语言和Java哪个难学?相信对于编程有一定了解的小伙伴,肯定都知道C语言是基础,比较夸张地说,掌握C语言也就无所不能了.因此,C语言的难度可想而知.相比于C语言,Java对于入门编程语言的学习者来说 ...

  5. 2016c和java哪个好就业_c语言和java哪个好就业

    从c语言和java的特性上来说,java能够跨平台有可移植性,要比c语言灵活,所以java的应用性更加广泛,就业机会也更多. 学c语言还是java 从两者的起源来看,java是c语言的后辈,它是在c语 ...

  6. c语言与java哪个更好_c语言和java哪个好?

    看到这个问题,一定要参与一下,这两个语言我都太熟悉了,也用了很长时间.关于程序设计语言,有这么两句话:C语言,神一样的语言.java语言是一个神话.所以说这是两个神级语言,到底哪个好?下面咱们逐个分析 ...

  7. c java学哪个好_c语言和java学哪个好

    本文们的的作l与用以用法介绍键字及它主要中cy关,语言和希望对大的作l与用a两个家有键字接受助j参数y关所帮,如下具体实例. 如果页面加载失败请求,个好则触发该事件.语言和面加何页[加件]载事在任载请 ...

  8. java c语言语法对比_c语言和java语法有区别吗?

    c语言和java语法有区别吗? c语言和java在语法上有区别,区别是: 1.C语言有指针,java没有指针: C语言的语法比较简单,但是它的亮点指针很容易出错,想要好好的运用指针是件很难的事情,用好 ...

  9. 零基础学编程,如何区分C语言和Java?我们到底如何怎么进行选择!

    C语言和 Java的主要区别:面向过程/面向对象.编译型/混合型.不同的应用场景.只要阅读二者的入门资料就清楚了. 时间足够的话,先学C再学Java:时间不够直接上 Java. 一个合格的程序员当然是 ...

  10. c和java的区别_论C语言和Java的区别

    原标题: 论C语言和Java的区别 在计算机的发展史上,出现过几百种编程语言,经过多年的发展,留下来的编程语言里面,历史最悠久的是最基础的C 语言,最流行的是Java,发展势头最好的是Python·· ...

最新文章

  1. 深入理解 wpa_supplicant(三)
  2. Linux 第70天 mariadb transaction, log
  3. 【转】gdb调试多进程程序
  4. 微服务模式下,实现前后端多资源服务调用
  5. 【图论】【高精】产生数(ssl 1021/ luogu 1037)
  6. 带有AOP和注释的Java方法记录
  7. php框架 事件,php框架Minor5事件(附代码)
  8. TopicDeletionManager分析
  9. 什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决。...
  10. tps是什么意思_系统了解精益生产系统TPS精益思想丛书介绍
  11. [luogu5008]逛庭院
  12. UT源码105032014052
  13. json解析库go-simplejson使用
  14. css布局的漂浮、position定位
  15. 百亿级微信红包的高并发资金交易系统设计方案
  16. ROS 2 Crystal Clemmys版机器人操作系统补充说明
  17. win10鼠标停留任务栏不显示预览小窗口
  18. 有价值的产品=设计思维+精益创业+敏捷方法
  19. Android移动开发的几种方式
  20. 快捷指令|支付宝合集|安卓支付宝shell快捷指令大全

热门文章

  1. delegate vs. event(转自LTP.NET知识库)
  2. mysql count group by_MySQL中使用count与group by 的统计问题
  3. android push php,Android_android push推送相关基本问答总结,通知和消息有什么区别?通 - phpStudy...
  4. matlab绘制不同线性的直方图,在matlab中绘制多个垂直直方图
  5. python解base64_python模块之base64
  6. 使用go语言开发一个后端gin框架的web项目
  7. iScroll示例,下拉刷新,上拉刷新
  8. 观点对立,无关虚拟现实技术
  9. JAVA的序列化不得不说的事
  10. Oracle队列锁enq:TS,Temporary Segment (also TableSpace)