在计算机中 : 负数的类型转换 (概述)

简介: 在计算机中 : 负数的类型转换 (概述)

在计算机中,负数一般以补码的形式来存储。


以8位二进制为例,假设我们要表示-1,我们首先写出1的二进制形式,即00000001。然后得到这个数的反码,即将0和1全部取反,得到11111110。然后再对这个反码加1,得到11111111,这就是-1在8位二进制下的补码表示。所以,-1在计算机中一般不会被存储为10000001,而是会被存储为11111111(在8位二进制下)。当然,具体的存储方式可能会因为计算机的位数不同而有所不同,例如在16位、32位或64位的计算机中,-1的二进制表示会有所不同。但无论在哪种计算机中,-1的二进制表示都会以补码的形式存在。在显示负数的时候,计算机会将补码转换为原码,再显示出来。例如,如果我们读到一个二进制数11111111(在8位二进制下),我们就知道这个数      是-1。

所以 1为0000 0001

       127为 0111 1111

       -1为1111 1111

      -2为1111 1101

      -3为1111 1100;

      -127  为1000 0001  (补码减一在取反   1111 1111  ->1111 1111 (-127)

      -128  为1000 0000  减一为0111 1111  取反为1000 0000 如果是2的7次方是128呢.

好的做一题

提示: 2的32次方为4294967296也就是100000000(32个0)...... 2的31次方为2147483648 为100000.....

所以-1u为11111(32个1)就是4294967295 (比2的32次方小一个数)

下面为判断题 1为true 2为false


0==0u 为 1  ( 注意后面加了u表示强制类型转换 ,比较的两个数都将转换为无符号类型 再进行转换)


-1<0    为 1


-1<0u 为0   -1为111111111.....(补码是这样的)       转化为无符号数自然大于0


2147483647u>-2147483647-1    为0,


详解: 首先2147483647的二机制为 111111111....(31个)


        而-2147483647-1为   -2147483647-1为 -2147483648 为 1000000000...变为无符号整数为2的31次方,也就是2147483648 所以大于2147483647  


(unsigned)-1>-2     1            -1为1111 1111  -2为   1111 1110 转化为无符号后正确


像-2147483647-1==2147483648u    


-2147483647-1为-2147483648   就是1 0000(一共31个零)转化为无符号型为212147483648故正确.

目录
相关文章
|
6月前
|
存储 C语言
C语言中如何选择合适的方式将整数转换为浮点数
C语言中如何选择合适的方式将整数转换为浮点数
1491 0
|
人工智能 搜索推荐 算法
C语言第十一练——输出本机的C语言基本数据类型最大最小取值范围
C语言第十一练——输出本机的C语言基本数据类型最大最小取值范围
62 0
|
4天前
|
存储 Java C++
浮点数(小数)在计算机中如何用二进制存储?
本文详细介绍了浮点数在计算机中如何用二进制存储,包括符号、指数和尾数三部分的组成及其计算方法。作者通过具体例子,如 `11.1875` 和 `0.1875` 的二进制表示,解释了如何将小数转换为二进制,并讨论了指数部分的“EXCESS系统表现”。文章还提到浮点数运算中的精度问题,并提供了进一步学习的参考资料。
17 2
浮点数(小数)在计算机中如何用二进制存储?
|
6天前
|
存储 编译器
二进制相关概念、运算与应用
本文详细介绍了二进制、原码、反码和补码的概念及其应用,包括8位二进制的表示范围和常见位运算符的使用方法。通过具体示例,解释了位运算在数值翻倍、字符大小写转换和IP地址生成中的巧妙运用。此外,还提供了进制间转换的方法和Java-API中的支持。本文旨在帮助读者深入理解位运算的基础和实际应用。
20 1
二进制相关概念、运算与应用
|
存储 C语言 C++
C语言之数据的存储2(浮点数在内存中如何存储,如何输出,查看不同类型数据在内存中表示的范围的方法,十进制浮点数转化为二进制的方法)
C语言之数据的存储2(浮点数在内存中如何存储,如何输出,查看不同类型数据在内存中表示的范围的方法,十进制浮点数转化为二进制的方法)
128 0
|
6月前
|
存储 编译器 C语言
C语言基础知识:数据在内存中的存储解析(整数,浮点数)
C语言基础知识:数据在内存中的存储解析(整数,浮点数)
|
6月前
|
存储
面试题:计算机内部如何存储负数和浮点数?
面试题:计算机内部如何存储负数和浮点数?
107 0
|
6月前
|
存储 Java 程序员
基本概念【变量和数据类型和运算符、二进制和十进制、十进制转二进制 、二进制转十进制 】(一)-全面详解(学习总结---从入门到深化)
基本概念【变量和数据类型和运算符、二进制和十进制、十进制转二进制 、二进制转十进制 】(一)-全面详解(学习总结---从入门到深化)
206 0
|
11月前
|
存储
【408计算机组成原理】—加减运算和溢出判断(八)
【408计算机组成原理】—加减运算和溢出判断(八)
计算机组成原理——浮点数加减运算&强制类型转换
计算机组成原理——浮点数加减运算&强制类型转换
818 0
计算机组成原理——浮点数加减运算&强制类型转换