有符号与无符号数强转的可逆性

 1         static void TestTypeConvert()
 2         {//把一个有符号数转为无符号后再转回来值保持不变,以下以1字节为例
 3             //原理:计算机中符点数都是有符号的,不存在这种转变,只剩下整数,
 4             //真值:绝对值的二进制值,如-1的真值为 00000001
 5             //整数是以补码形式存放的,计算机规定了正数的补码是本身,负数的补码是:符号位不变,真值按位取反再加1
 6             //强制转换做的事就是把一个补码看成是有符号还是无符号
 7             //有符号数,在计算时:符号位不变,真值按位取反再加1。无符号数直接计算,举例如下:
 8             //1,-1 的真值为00000001,补码为 1 111 1111,强转时就是把补码值看作是一个无符数,因此它=255
 9             //,再次强转时把它看成有符号数,符号位不管,其余位按位取反加1后是1,因此再次转回了-1
10             //2,-2 的真值为00000010,补码为 1 111 1110,强转时把补码看作无符号数,因此它=254
11             //3,-128真值有点特殊,128的二进制码为1000 0000,第8位是符号位,舍弃,取后面的0,即-128的真值为0
12             //补码经按位取反加1后还是 1 000 0000,强转时看成无符号数即为128
13             sbyte sb = -128;
14             var b = (byte)(sb);
15             var sb1 = (sbyte)(b);
16         }

posted on 2017-11-21 11:30 时空观察者9号 阅读(...) 评论(...) 编辑 收藏

有符号与无符号数强转的可逆性相关推荐

  1. C/C++ —— signed 与 unsigned 有符号和无符号数及其移位

    unsigned int a = 0; unsigned int b = -1; // b 为 0xffffffff unsigned int c = a - 1; // c 为 0xffffffff ...

  2. 汇编中有符号与无符号数以及CF,OF标志位的区分

    汇编中有符号与无符号数以及CF,OF标志位的区分 一. 只有一个标准! 首先需要知道,计算机对数值的存储采用补码形式存储,一来避免了+0和-0的尴尬,二来数值的加法和减法可以统一为补码的加法. 在汇编 ...

  3. linux有符号和无符号,汇编中有符号与无符号数的区分

    转载自:http://hi.baidu.com/asmsky/blog/item/7290d20076cab6da277fb5b8.html 一.只有一个标准! 在汇编语言层面,声明变量的时候,没有 ...

  4. C语言高级编程:如何确定一个变量是有符号还是无符号数

    ANSI C中的整型升级: 1)char,short int或者int型位段(bit-field),包括它们的有符号或无符号变型, 2)以及枚举类型,可以使用在需要int或unsigned int的表 ...

  5. C++有符号和无符号数的转换

    本文转自:http://www.94cto.com/index/Article/content/id/59973.html 1.引例: 今天在做了一道关于有符号数和无符号数相互转换及其左移/右移的问题 ...

  6. 【C语言】有符号和无符号数的比较运算

    int a = -1;unsigned int b = 1;if(a < b)printf("a < b\r\n");elseprintf("a > b ...

  7. 有符号数无符号数加法以及浮点数表示

    写在前面:计算机中数据存储与运算的专业名词听起来晦涩,实际上我们在九年义务教育阶段就已经掌握了,如:整型(integer)--整数,浮点数(float)--小数,无符号数(unsigned)--正数, ...

  8. 计算机中的无符号有几种,【数据结构】整数类型之有符号、无符号数(原码、反码、补码)详解。...

    Fist:why? 有时候只知道什么还不够,我们还需要为什么,所以我在整个数据结构系列中都要追寻这个答案. Q1:为什么需要整型数据. 因为整型数据结构跟生活密切相关,生活中.数学中到处都是整型数字. ...

  9. 有符号数无符号数比较(学习笔记)

    最近在CSAPP看到一个有趣的小例子 -1== 4294967295? 先上代码 #include<iostream> #include<bitset> #include< ...

最新文章

  1. 新建silverlight项目提示未将对象设置到实例解决方案
  2. ajax请求携带tooken_使用ajax发送带 csrftoken 的请求失败
  3. SpringBoot的Thymeleaf支持,结合SpringMVC做的案例(学习SpringBoot实战)
  4. C printf()函数转换说明符
  5. 异常:Exception
  6. 阿里淘宝:“杀死”拼多多!
  7. Java中将ResultSet结果集转换为List
  8. 域名被封(微信)后的思索
  9. Shark简介、部署及编译小结
  10. 【多元统计分析】01.多元统计的基础
  11. c语言谱曲软件,基于C语言的音乐谱曲技巧与应用研究
  12. vscode打开setting.json文件
  13. 清华大学出来的工资有多高?
  14. 麦马计算机科学和麦马数学专业,积极配合 成功申请麦克马斯特大学数学专业...
  15. Sentinel-1 SAR数据与精密轨道数据下载
  16. 2×24全交换开关矩阵方案
  17. 命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”(是缺少程序集引用吗?)...
  18. 别再说自己不会了!2021年教你增加拿到BAT等大厂offer几率,醍醐灌顶!
  19. Android对应的版本号
  20. 医学图像处理医学图像处理-卷积神经网络卷积神经网络_基于深度卷积神经网络的刀具磨损量自动提取方法...

热门文章

  1. 笔记-项目干系人管理-管理干系人参与
  2. c# Application.DoEvents
  3. Hbase报错ERROR: KeeperErrorCode = NoNode for /hbase/master
  4. Android入门学习教程PDF免费下载
  5. EasyUI入门教程整理与示例代码下载
  6. MyBatisPlus中自定义全局操作流程
  7. 学习ribbon,进来看看吧
  8. 其他类似GitBook的在线文档创作平台
  9. flutter项目打包.exe文件发布windows版
  10. 告别运营怪圈,不做“背锅侠+加班狗+低薪族”!