今天做面试题 问 0x7FFFFFFF+0x7FFFFFFF 是多少 一时没想明白,回家补了一下,记录下来

int a,ba=b=0x7FFFFFFF
Console.WriteLine(a+b)

原来

一个F就是4个bit,两个FF就是一个字节(byte)

0x7F 对应 sbyte.MaxValue 即 127   7对应比特为0111,F对应比特为1111,所以0x7F=0111 1111

0xFF 对应 byte.MaxValue 即 255

0x7FFF 对应  short.MaxValue 即 32767

0xFFFF 对应  ushort.MaxValue 即 65535

0x7FFFFFFF 对应 int.MaxValue 即 2147483647

0xFFFFFFFF 对应 uint.MaxValue  即  4294967295

注意C#里  byte类型范围是 0-255  sbyte类型有符号位 -128~127

这个是计算机里的基础,
答案是 -2
为什么呢

都是最大值直接用sbyte.MaxValue 来说

0111 1111
+ 0111 1111
= 1111 1110
符号位溢出了
取反
1000 0001
再加1
1000 0010
结果就得-2

这只是示意
C#里sbyte+sbyte是没问题的 因为 + operator 默认是int类型实现的 int才会溢出
也发现C# a=int.MaxValue,b=int.MaxValue a+b 默认就是-2 也是就是默认是unchecked()的
直接用 int.MaxValue+int.MaxValue 编绎器过不了 unchecked()(int.MaxValue+int.MaxValue)这样就好了

一个byte 8个bit 
0111 1111 有符号sbyte类型最高位bit用来标记是正还是负 0正 1负
所以真正能存数的只有7个bit 那它的大小是  2^0+2^1+2^2.....2^6=127
负数最大值是 1000 0000 先-1 即 0111 1111 再取反 1000 0000 转成2进制 2^7=128 其它位的0
 
符号为1时 这里有个操作叫 补码 
补码 0与正数不变 当符号位是1是 除最高位其它7个bit先取反(反码)再加1
比如 0-1
默认先补码 0000 0001先反转1111 1110 再加1即 1111 1111
计算机再算的时候成了 0+(-1) 直接算

参考:byte的范围为何是-128到127 
参考: 补码 
参考: 补码2 
参考: java中为什么byte的取值范围是-128到+127

问 0x7FFFFFFF+0x7FFFFFFF 是多少相关推荐

  1. C/C++无穷大的表示 0x7fffffff + 0x7fffffff= 负数

    C/C++中无穷大的表示 一.为什么用0x3f3f3f3f(十进制:1061109567)表示无穷大 1.C/C++中int型的最大值是2^31-1,十进制:2147483647.16进制:0x7ff ...

  2. 为什么0x7FFFFFFF+0x7FFFFFFF=-2

    在学习过程中碰到这个问题,所以记下来. 0x7fffffff 是16进制数,转化为2进制数为:(7=> 0111 f=>1111) 0111 1111 1111 1111 1111 111 ...

  3. c++ 无穷大0x7FFFFFFF+0x7FFFFFFF 是多少

    答案是 -2 为什么呢 这里涉及到有符号整型数的补码,正数的补码与原码相同.负数的补码,将其原码除符号位外的所有位取反后加1 0111 1111 + 0111 1111 = 1111 1110 符号位 ...

  4. 0x7FFFFFFF+0x7FFFFFFF 是多少

    运行之后发现: 0x7FFFFFFF 对应 int.MaxValue 即 2147483647 0xFFFFFFFF 对应 uint.MaxValue 即 4294967295 0x7FFF 对应 s ...

  5. 嘿嘿,我就知道面试官接下来要问我 ConcurrentHashMap 底层原理了,看我怎么秀他...

    来自:烟雨星空 前言 上篇文章介绍了 HashMap 源码后,在博客平台广受好评,让本来己经不打算更新这个系列的我,仿佛被打了一顿鸡血.真的,被读者认可的感觉,就是这么奇妙. 原文:面试官再问你 Ha ...

  6. 面试题整理 1:将一个字符串转换为整数

    题目:输入一个表示整数的字符串,把该字符串转换成整数并输出. 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程序员就这道题写出的代码有很大区别,可以说这道题能够很好地反应出程 ...

  7. 【原理】Basic Integer Overflows

    Basic Integer Overflows 创建时间:2002-12-31 文章属性:转载 文章提交: xundi (xundi_at_xfocus.org) Volume 0x0b, Issue ...

  8. “睡服”面试官系列第九篇之数值的扩展(建议收藏学习)

    目录 1. 二进制和八进制表示法 2. Number.isFinite(), Number.isNaN() 3. Number.parseInt(), Number.parseFloat() 4. N ...

  9. Math 对象的扩展

    Math 对象的扩展 ES6 在 Math 对象上新增了 17 个与数学相关的方法.所有这些方法都是静态方法,只能在 Math 对象上调用. Math.trunc() Math.trunc()方法用于 ...

最新文章

  1. 简单module_深入理解JavaScript之全面解析Module模式
  2. Android app集成Google Map方法
  3. mysql 基础视图_MySQL基础(4) | 视图
  4. U盘专杀工具,U盘防御软件,U盘病毒防火墙--UDiskSyS
  5. 用计算机MR,计算机上的【MC、MR、M
  6. SQL Server MDS(主数据服务)介绍
  7. es 测试数据进行 增删查改
  8. 3D视觉(一)三维数学基础教程和SLAM
  9. 济南 天然气 暖气 物业费 水费 电费价格
  10. python创建空文本文件_Python空白txt文件创建
  11. INTELLIJ IDEA 2017 破解教程(2018也可以!)
  12. SmartUpload文件上传
  13. scrapy中文文档基础知识
  14. 华为3Com总裁郑树生:我们最终要自立门户
  15. Caché库诡异慢问题跟踪
  16. linux系统python3环境下安装pymysql模块
  17. 【论文阅读】Blur Calibration for Depth from Defocus
  18. android 4.2目录结构,关于android的4.2的0文件夹的详解(目录结构挂载分析)
  19. 真爱如血第七季/全集True Blood迅雷下载
  20. 实验二 数据类型、运算符与表达式→ 张玉生《C语言程序设计实训教程》双色版 配套实验书答案 (纯手打, 仅供参考)

热门文章

  1. Android开机图片替换
  2. 能根据姓名和身份证号找到计算机准考证号吗?
  3. Dubbo SPI机制(上):一个普通的扩展类是如何加载的
  4. 用keras计算F1
  5. 用户编号与计算机绑定,手机绑定了什么怎么查-太平洋IT百科手机版
  6. Mac终端命令行隐藏主机名
  7. 以CDN为底色,Akamai正在成为一朵不一样的云!
  8. #2015年盘点第一弹#八大事件复盘O2O棋局
  9. AIE磷脂化合物微球/AIE分子脂质体磷脂化合物微球/表面基团修饰AIE微球的制备过程
  10. Linux下查看网关方法