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

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

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


以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语言中如何选择合适的方式将整数转换为浮点数
1583 0
|
20天前
|
存储 Java C++
浮点数(小数)在计算机中如何用二进制存储?
本文详细介绍了浮点数在计算机中如何用二进制存储,包括符号、指数和尾数三部分的组成及其计算方法。作者通过具体例子,如 `11.1875` 和 `0.1875` 的二进制表示,解释了如何将小数转换为二进制,并讨论了指数部分的“EXCESS系统表现”。文章还提到浮点数运算中的精度问题,并提供了进一步学习的参考资料。
29 2
浮点数(小数)在计算机中如何用二进制存储?
|
存储 C语言 C++
C语言之数据的存储2(浮点数在内存中如何存储,如何输出,查看不同类型数据在内存中表示的范围的方法,十进制浮点数转化为二进制的方法)
C语言之数据的存储2(浮点数在内存中如何存储,如何输出,查看不同类型数据在内存中表示的范围的方法,十进制浮点数转化为二进制的方法)
130 0
|
3月前
|
C# 图形学
小功能⭐️C#控制小数点后位数的方法
小功能⭐️C#控制小数点后位数的方法
|
4月前
|
算法 Python
堆栈应用于通用进制转换和表达式转换
【7月更文挑战第5天】该文主要介绍两种转换方法:还提供了完整的Python代码实现,包括进制转换函数`transfAny`和中缀到后缀表达式转换的`infixToPostfix`函数。
38 2
|
6月前
|
存储 编译器 C语言
C语言基础知识:数据在内存中的存储解析(整数,浮点数)
C语言基础知识:数据在内存中的存储解析(整数,浮点数)
|
6月前
|
存储
面试题:计算机内部如何存储负数和浮点数?
面试题:计算机内部如何存储负数和浮点数?
109 0
|
6月前
|
存储 Java 程序员
基本概念【变量和数据类型和运算符、二进制和十进制、十进制转二进制 、二进制转十进制 】(一)-全面详解(学习总结---从入门到深化)
基本概念【变量和数据类型和运算符、二进制和十进制、十进制转二进制 、二进制转十进制 】(一)-全面详解(学习总结---从入门到深化)
263 0
|
6月前
牛客网刷题总结1.利用%符号获取特定位数的数字。2.强制类型转换 (将float转换为int )3.计算有关浮点型数据时,要注意你计算过程中所有的数据都是浮点型
牛客网刷题总结1.利用%符号获取特定位数的数字。2.强制类型转换 (将float转换为int )3.计算有关浮点型数据时,要注意你计算过程中所有的数据都是浮点型
68 0
|
存储 人工智能 编译器
C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)
C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)
480 0