这个从二进制来解释:

int 是 32 位,也就是最多能表示长度为 32 位的二进制整数。第一位是符号位,表示正负,0 表示正的,1 表示负的。当首位为 1(为负)时,把所有的位取反(0 变成 1,1 变成 0),然后再 + 1,就是它的正数相反数。

short 是 16 位,长度短了,其他和 int 一样的。

然后看你的问题,123456 本来是 int,有 32 位,二进制表示为:0000 0000 0000 0001 1110 0010 0100 0000。

然后你转成了 short,short 最大 16 位,截取最后 16 位,就是 1110 0010 0100 0000,这个数肯定不是原来那个数了,首位是 1,那么就是负数,取反加一以后是 0001 1101 1100 0000,这转成十进制就是 7616,这是相反数,所以是 -7616。

看明白了吗?不明白问我。

最新文章

  1. 01-C#入门(函数一)
  2. java web 开发 购物车功能的实现
  3. 剑指Offer 旋转数组的最小数字
  4. STM32F0xx_TIM输入捕获(计算频率)配置详细过程
  5. Hibernate exercise 54
  6. [讲座]【项目收集】“清流资本”互联网金融沙龙——颠覆者的创新与机会
  7. Stackdump: 一个可以离线看stackoverflow的工具
  8. windows下载安装requests
  9. sql server 数据库创建链接服务器访问另外一个sql server 数据库
  10. C#生成随机验证吗例子
  11. iOS 给UITextView加一个placeholder
  12. php+xdebug+dbgp远程调试(多人)
  13. 导入项目 idea
  14. 【webpack系列】从零搭建 webpack4+react 脚手架(三)
  15. OneNote中添加代码问题
  16. 关于 telegram中 callback_data <= 64bytes 的解决方法
  17. Java GC机制中Minor GC/Full GC
  18. 01bootstrap_基本结构和布局
  19. 巧克力分配问题——C语言
  20. css设置input不显示光标

热门文章

  1. static数据成员与const数据成员的定义与初始化
  2. BZOJ3302: [Shoi2005]树的双中心
  3. 【JVM】java的内存泄露问题
  4. python的编解码问题
  5. 神秘常量!用0x077CB531计算末尾0的个数,32位数首位相连
  6. 媒体查询ipad,pc端
  7. Dos简单命令
  8. Python获取%appdata%路径的方法
  9. QtCreator开启-O编译优化的方式
  10. Swing编程---添加背景图片的方法