`
kmplayer
  • 浏览: 508956 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于类型转换的问题

阅读更多
先看一段代码:
#include <stdio.h>
int main()
{
    char c1=100;
    char c2=200;
    char c3=c1+c2;
    printf("c2==%d\n",c2);
    printf("c3==%d\n",c3);

    char x=124;
    char y=x+x;
    printf("x+x== %x\n",x+x);
    printf("y==%x\n",y);
}

输出结果:
c2==-56
c3==44
原因:
(1)char型大小:1个字节,可表示的有符号数范围:[-128 127]
(2)200类型为int,大小4个字节,表示为:0x000000c8(16)
(3)赋值给c2,前面3个字节都被截断,只剩0xc8(16),即11001000(2)
(4)11001000(2)就是-56(10).
分析:补码的定义,绝对值取反加1.
反过来:第一位符号位,剩余位数先减1,得到:1000111(2),取反0111000(2),即56(10)
输出结果:
x+x==f8
y==fffffff8
原因:
(1)x为char,但是计算结果由于%x提升为整型,248,即F8 
(2)char 默认是有符号的,范围为(-128,127),所以124+124=248>127,已经溢出了.
128溢出后为-127,129为-126,依次类推:248溢出后的值等于248-256=-8.
-8的十六进制表示就是FFFFFFF8(32位机器)
分享到:
评论

相关推荐

    强制类型转换说明_LabVIEW中关于强制类型转换的使用_labview中tcp_

    在LabVIEW编程环境中,强制类型转换是至关重要的一个环节,特别是在涉及到数据通信,如TCP/IP通信时。本文将深入探讨LabVIEW中强制类型转换的概念、使用场景以及具体操作方法。 LabVIEW是一种图形化编程语言,它的...

    数据库中clob类型转换的问题 数据库中clob类型转换的问题

    在探讨“数据库中CLOB类型转换的问题”这一主题时,我们首先需要理解CLOB(Character Large Object)数据类型的基本概念及其在数据库中的应用场景。随后,将深入分析CLOB类型转换过程中可能遇到的问题,并提供相应的...

    关于C++中的类型转换问题的资料

    ### 关于C++中的类型转换问题的资料 在C++编程语言中,类型转换是极为常见且重要的一个概念。它允许开发者将一种数据类型的值转换为另一种数据类型的值。这在许多情况下都是非常有用的,比如当需要将不同类型的值...

    VC各种类型转换,很详细啊

    在VC++编程环境中,类型转换是一项非常常见的操作,特别是在处理不同数据类型之间的交互时。VC++,即Visual C++,是Microsoft开发的一款强大的C++集成开发环境,它支持多种类型的类型转换,包括隐式转换和显式转换。...

    浅谈C++中强制类型转换函数

    "C++强制类型转换函数详解" C++中强制类型转换函数是指使用强制类型转换操作...理解和掌握强制类型转换函数是C++程序设计中非常重要的一部分,它可以帮助我们更好地解决类型转换的问题,并提高程序的安全性和可靠性。

    C#数据类型转换问题集锦

    C# 数据类型转换问题集锦 C# 数据类型转换是一个非常重要的概念,掌握好数据类型转换对于编程开发非常重要。本文将会对 C# 中的数据类型转换进行总结和分析,并提供了一些实用的代码示例。 在 C# 中,数据类型可以...

    常用类型转换扩展_C#_扩展_类型转换_

    在C#编程中,类型转换是开发者经常遇到的操作,它涉及到不同数据类型的相互转化。本文将深入探讨C#中常见的类型转换扩展,并介绍如何通过扩展方法来增强类型转换的便捷性和可读性。 首先,我们要了解C#内置的类型...

    vhdl数据类型转换函数

    VHDL 数据类型转换函数 VHDL 中的数据类型转换函数是指在 VHDL 程序中将不同类型的数据相互转换的函数。这些函数的作用是实现不同类型的数据之间的转换,以便正确地进行赋值操作。 在 VHDL 中,数据类型转换函数...

    运行时类型信息RTTI及类型转换

    C++标准提供了两个主要的手段来利用RTTI:`typeid`运算符和类型转换。 `typeid`运算符提供了在运行时检查对象类型的能力。`typeid`有两种形式:`typeid(type_name)`和`typeid(expression)`。前者返回指定类型的`...

    C++类各种类型转换_数据类型的相互转换_

    首先,我们讨论隐式类型转换(也称为自动类型转换)。在C++中,当一个数据类型可以安全地被转换为另一种类型时,编译器会自动执行这种转换。例如,较小的数据类型(如int)可以被赋值给较大的数据类型(如long long...

    C++到C#数据类型转换

    C++ 到 C# 数据类型转换 在软件开发中,数据类型转换是一个非常重要的步骤,特别是在使用不同的编程语言时。C++ 和 C# 是两种非常流行的编程语言,它们之间的数据类型转换是非常必要的。本文将详细介绍 C++ 到 C# ...

    mysql数据类型转换

    ### MySQL 数据类型转换详解 #### 一、引言 在MySQL数据库中,数据类型转换是一项非常重要的技能。它可以帮助我们灵活地处理不同类型的数据,尤其是在进行数据检索或处理时,经常需要将一种数据类型转换为另一种...

    ORACLE 自动类型转换

    本文将深入探讨“ORACLE 自动类型转换”这一主题,以帮助理解Oracle如何处理不同类型的数据以及可能遇到的问题。 Oracle数据库支持多种数据类型,如数值型(NUMBER、INTEGER、BINARY_INTEGER等)、字符型(VARCHAR2...

    各种string类型转换

    以下将详细解析从给定文件中提取出的关于“各种string类型转换”的知识点。 ### ANSI String与C风格字符串(char*)之间的转换 #### ANSI String转C风格字符串 ```cpp #include void __fastcall TForm1::Button1...

    西门子数据类型转换_tool_数据类型转换_S7_源码

    "西门子数据类型转换_tool_数据类型转换_S7_源码"这个资源就是一个专门解决这个问题的工具集合。 首先,我们要理解西门子PLC中的主要数据类型。INT是16位整数,用于存储小范围的整数值;DINT是32位整数,可以存储更...

    C语言隐式类型转换规则

    ### C语言隐式类型转换规则详解 #### 一、引言 C语言作为一种广泛使用的编程语言,具有严格的类型检查机制。在C语言中,不同类型的数值可以通过类型转换来进行混合运算。这种转换分为两种:隐式类型转换和显式类型...

    类的转换C++的内部数据类型遵循隐式类型转换规则

    这种转换通常分为两种类型:转换构造函数和成员转换函数,这两种方法都遵循C++的隐式类型转换规则。 首先,转换构造函数是一种特殊的构造函数,它的作用是将非本类类型的对象转换成本类的对象。在给定的代码示例中...

    KETTLE数据库转换类型例子

    同时,Kettle支持自定义转换逻辑,可以应对各种复杂的数据清洗和转换需求,比如数据类型转换、缺失值处理、数据验证等。这种灵活性和强大的功能使得Kettle成为数据工程师在数据集成项目中的首选工具之一。

    显式类型转换,类型强制转换为浮点型和整型

    在编程领域,类型转换是一种常见的操作,特别是在处理多种数据类型的程序中。显式类型转换,也称为类型强制转换,允许程序员明确地将一个数据类型的值转换为另一个数据类型。这在处理不同数据精度或者需要特定类型...

    C ++类型转换心得

    在C++编程中,类型转换是一项重要的操作,特别是在处理不同数据类型的交互时。本文将深入探讨C++类型转换的一些心得,以及在MFC(Microsoft ...在实践中不断积累经验,才能更好地应对各种复杂的类型转换问题。

Global site tag (gtag.js) - Google Analytics