先看一段代码:
#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编程环境中,强制类型转换是至关重要的一个环节,特别是在涉及到数据通信,如TCP/IP通信时。本文将深入探讨LabVIEW中强制类型转换的概念、使用场景以及具体操作方法。 LabVIEW是一种图形化编程语言,它的...
在探讨“数据库中CLOB类型转换的问题”这一主题时,我们首先需要理解CLOB(Character Large Object)数据类型的基本概念及其在数据库中的应用场景。随后,将深入分析CLOB类型转换过程中可能遇到的问题,并提供相应的...
### 关于C++中的类型转换问题的资料 在C++编程语言中,类型转换是极为常见且重要的一个概念。它允许开发者将一种数据类型的值转换为另一种数据类型的值。这在许多情况下都是非常有用的,比如当需要将不同类型的值...
在VC++编程环境中,类型转换是一项非常常见的操作,特别是在处理不同数据类型之间的交互时。VC++,即Visual C++,是Microsoft开发的一款强大的C++集成开发环境,它支持多种类型的类型转换,包括隐式转换和显式转换。...
"C++强制类型转换函数详解" C++中强制类型转换函数是指使用强制类型转换操作...理解和掌握强制类型转换函数是C++程序设计中非常重要的一部分,它可以帮助我们更好地解决类型转换的问题,并提高程序的安全性和可靠性。
C# 数据类型转换问题集锦 C# 数据类型转换是一个非常重要的概念,掌握好数据类型转换对于编程开发非常重要。本文将会对 C# 中的数据类型转换进行总结和分析,并提供了一些实用的代码示例。 在 C# 中,数据类型可以...
在C#编程中,类型转换是开发者经常遇到的操作,它涉及到不同数据类型的相互转化。本文将深入探讨C#中常见的类型转换扩展,并介绍如何通过扩展方法来增强类型转换的便捷性和可读性。 首先,我们要了解C#内置的类型...
VHDL 数据类型转换函数 VHDL 中的数据类型转换函数是指在 VHDL 程序中将不同类型的数据相互转换的函数。这些函数的作用是实现不同类型的数据之间的转换,以便正确地进行赋值操作。 在 VHDL 中,数据类型转换函数...
C++标准提供了两个主要的手段来利用RTTI:`typeid`运算符和类型转换。 `typeid`运算符提供了在运行时检查对象类型的能力。`typeid`有两种形式:`typeid(type_name)`和`typeid(expression)`。前者返回指定类型的`...
首先,我们讨论隐式类型转换(也称为自动类型转换)。在C++中,当一个数据类型可以安全地被转换为另一种类型时,编译器会自动执行这种转换。例如,较小的数据类型(如int)可以被赋值给较大的数据类型(如long long...
### MySQL 数据类型转换详解 #### 一、引言 在MySQL数据库中,数据类型转换是一项非常重要的技能。它可以帮助我们灵活地处理不同类型的数据,尤其是在进行数据检索或处理时,经常需要将一种数据类型转换为另一种...
C++ 到 C# 数据类型转换 在软件开发中,数据类型转换是一个非常重要的步骤,特别是在使用不同的编程语言时。C++ 和 C# 是两种非常流行的编程语言,它们之间的数据类型转换是非常必要的。本文将详细介绍 C++ 到 C# ...
本文将深入探讨“ORACLE 自动类型转换”这一主题,以帮助理解Oracle如何处理不同类型的数据以及可能遇到的问题。 Oracle数据库支持多种数据类型,如数值型(NUMBER、INTEGER、BINARY_INTEGER等)、字符型(VARCHAR2...
以下将详细解析从给定文件中提取出的关于“各种string类型转换”的知识点。 ### ANSI String与C风格字符串(char*)之间的转换 #### ANSI String转C风格字符串 ```cpp #include void __fastcall TForm1::Button1...
"西门子数据类型转换_tool_数据类型转换_S7_源码"这个资源就是一个专门解决这个问题的工具集合。 首先,我们要理解西门子PLC中的主要数据类型。INT是16位整数,用于存储小范围的整数值;DINT是32位整数,可以存储更...
### C语言隐式类型转换规则详解 #### 一、引言 C语言作为一种广泛使用的编程语言,具有严格的类型检查机制。在C语言中,不同类型的数值可以通过类型转换来进行混合运算。这种转换分为两种:隐式类型转换和显式类型...
这种转换通常分为两种类型:转换构造函数和成员转换函数,这两种方法都遵循C++的隐式类型转换规则。 首先,转换构造函数是一种特殊的构造函数,它的作用是将非本类类型的对象转换成本类的对象。在给定的代码示例中...
同时,Kettle支持自定义转换逻辑,可以应对各种复杂的数据清洗和转换需求,比如数据类型转换、缺失值处理、数据验证等。这种灵活性和强大的功能使得Kettle成为数据工程师在数据集成项目中的首选工具之一。
在编程领域,类型转换是一种常见的操作,特别是在处理多种数据类型的程序中。显式类型转换,也称为类型强制转换,允许程序员明确地将一个数据类型的值转换为另一个数据类型。这在处理不同数据精度或者需要特定类型...
在C++编程中,类型转换是一项重要的操作,特别是在处理不同数据类型的交互时。本文将深入探讨C++类型转换的一些心得,以及在MFC(Microsoft ...在实践中不断积累经验,才能更好地应对各种复杂的类型转换问题。