数据类型转换示例

C# 里,常用的数据类型转换说明,以及简单示例 在 C# 中,类型转换是将一个数据类型的值转换为另一个数据类型的过程。类型转换可以分为两种:隐式类型转换和显式类型转换(也称为强制类型转换)。类型转换方法有:使用 Convert 类;使用 Parse 方法;使用 TryParse 方法;这里推荐使用TryParse 方法,有异常产生时,不至于导致程式崩溃. 阅读详情

刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。 

我们先定义一些常见类型变量借以说明 

int i = 100; 
long l = 2001; 
float f=300.2; 
double d=12345.119; 
char username[]="女侠程佩君"; 
char temp[200]; 
char *buf; 
CString str; 
_variant_t v1; 
_bstr_t v2; 

一、其它数据类型转换为字符串 

短整型(int) 
itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制 
itoa(i,temp,2); ///按二进制方式转换 
长整型(long) 
ltoa(l,temp,10); 


二、从其它包含字符串的变量中获取指向该字符串的指针 

CString变量 
str = "2008北京奥运"; 
buf = (LPSTR)(LPCTSTR)str; 
BSTR类型的_variant_t变量 
v1 = (_bstr_t)"程序员"; 
buf = _com_util::ConvertBSTRToString((_bstr_t)v1); 

三、字符串转换为其它数据类型 
strcpy(temp,"123"); 

短整型(int) 
i = atoi(temp); 
长整型(long) 
l = atol(temp); 
浮点(double) 
d = atof(temp); 

四、其它数据类型转换到CString 
使用CString的成员函数Format来转换,例如: 

整数(int) 
str.Format("%d",i); 
浮点数(float) 
str.Format("%f",i); 
字符串指针(char *)等已经被CString构造函数支持的数据类型可以直接赋值 
str = username; 

五、BSTR、_bstr_t与CComBSTR 

CComBSTR、_bstr_t是对BSTR的封装,BSTR是指向字符串的32位指针。 
char *转换到BSTR可以这样: BSTR b=_com_util::ConvertStringToBSTR

("数据");///使用前需要加上头文件comutil.h 
反之可以使用char *p=_com_util::ConvertBSTRToString(b); 


六、VARIANT 、_variant_t 与 COleVariant 

VARIANT的结构可以参考头文件VC98/Include/OAIDL.H中关

于结构体tagVARIANT的定义。 
对于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,

再对联合结构中相同数据类型的变量赋值,举个例子: 
VARIANT va; 
int a=2001; 
va.vt=VT_I4;///指明整型数据 
va.lVal=a; ///赋值 

对于不马上赋值的VARIANT,最好先用

Void VariantInit(VARIANTARG FAR* pvarg);进行初始化,其本质

是将vt设置为VT_EMPTY,下表我们列举vt与常用数据的对应关系: 

unsigned char bVal; VT_UI1 
short iVal; VT_I2 
long lVal; VT_I4 
float fltVal; VT_R4 
double dblVal; VT_R8 
VARIANT_BOOL boolVal; VT_BOOL 
SCODE scode; VT_ERROR 
CY cyVal; VT_CY 
DATE date; VT_DATE 
BSTR bstrVal; VT_BSTR 
IUnknown FAR* punkVal; VT_UNKNOWN 
IDispatch FAR* pdispVal; VT_DISPATCH 
SAFEARRAY FAR* parray; VT_ARRAY|* 
unsigned char FAR* pbVal; VT_BYREF|VT_UI1 
short FAR* piVal; VT_BYREF|VT_I2 
long FAR* plVal; VT_BYREF|VT_I4 
float FAR* pfltVal; VT_BYREF|VT_R4 
double FAR* pdblVal; VT_BYREF|VT_R8 
VARIANT_BOOL FAR* pboolVal; VT_BYREF|VT_BOOL 
SCODE FAR* pscode; VT_BYREF|VT_ERROR 
CY FAR* pcyVal; VT_BYREF|VT_CY 
DATE FAR* pdate; VT_BYREF|VT_DATE 
BSTR FAR* pbstrVal; VT_BYREF|VT_BSTR 
IUnknown FAR* FAR* ppunkVal; VT_BYREF|VT_UNKNOWN 
IDispatch FAR* FAR* ppdispVal; VT_BYREF|VT_DISPATCH 
SAFEARRAY FAR* FAR* pparray; VT_ARRAY|* 
VARIANT FAR* pvarVal; VT_BYREF|VT_VARIANT 
void FAR* byref; VT_BYREF 

_variant_t是VARIANT的封装类,其赋值可以使用强制类型转换,

其构造函数会自动处理这些数据类型。 
例如: 
long l=222; 
ing i=100; 
_variant_t lVal(l); 
lVal = (long)i; 

COleVariant的使用与_variant_t的方法基本一样,请参考如下例子: 
COleVariant v3 = "字符串", v4 = (long)1999; 
CString str =(BSTR)v3.pbstrVal; 
long i = v4.lVal; 

七、其它 

对消息的处理中我们经常需要将WPARAM或LPARAM

等32位数据(DWORD)分解成两个16位数据(WORD),例如: 
LPARAM lParam; 
WORD lovalue = LOWORD(lParam);///取低16位 
WORD hivalue = HIWORD(lParam);///取高16位 
对于16位的数据(WORD)我们可以用同样的方法分解成

高低两个8位数据(BYTE),例如: 
WORD wvalue; 
BYTE lovalue = LOBYTE(wvalue);///取低8位 
BYTE hivalue = HIBYTE(wvalue);///取高8位

编程数据类型转化 在程序中用于数据类型转化,c++语言编写 立即下载

相关推荐

02A-IDL语法基础:IDL简介、数据类型、常量、变量及数据转换1

第二章 数据分析工具:IDL编程课程要求和考核方式课程基础高等数学/线性代数/概率论与数理统计高级程序语言与程序设计( C )/Matlab 程序设计学习目的1

数据类型-转换-总结-介绍

在 C# 中,内置的类型转换方法主要通过以下几种方式实现:隐式转换、显式转换(强制转换)、使用 Convert 类的方法、Parse 方法和 TryParse 方法,这些方法广泛应用于不同数据类型之间的转换。方法类别方法描述隐式转换自动进行的转换无需显式指定,通常用于安全的类型转换,如从较小类型到较大类型显式转换(强制转换)需要显式指定,通常用于可能导致数据丢失或转换失败的情况Convert类方法将指定类型转换为BooleanParse方法将字符串解析为BooleanTryParse。

weixin_56549706的博客 1964

[WeChatMsg]导出csv格式微信聊天记录的手把手教程

手把手教大家如何导出自己的聊天记录得到csv文件,即使是电脑小白也可以轻松学会o(* ̄▽ ̄*)ブ

weixin_51094633的博客 1万+

Java学习笔记3—变量的类型转换

目录 一、自动类型转换 思考1:以下的代码能不能通过编译 思考2:以下的代码能不能通过编译 二、强制类型转换 思考1:以下代码能不能通过编译 拓展:以下代码强转后,byte的值为多少 一、自动类型转换 废话不多说,直接举个例子吧 double a=1; System.out.println(a); 在这种情况下,给double型的a赋值一个int值的1,这种情况下是可以通过编译的,输出的结果是1.0,说明系统将int型的a=1自动转为了double型的a=1.0。 自动类型转换是

qq_63708623的博客 1102

FreeSWITCH视频通话实战:关键配置文件解析与编解码优化

本文详细解析了FreeSWITCH视频通话实战中的关键配置,重点介绍了如何通过修改`conf/vars.xml`和`sip_profiles/internal.xml`文件来启用媒体代理、优化编解码器设置(如H.264和VP8),并解决常见的视频流协商与网络穿透问题,帮助用户快速实现稳定、高质量的视频通话功能。

js777的博客 252

ArcGIS通过已知坐标点转面(通过excel文件,有工具可批量生成面要素)

通过使用ArcGIS中的工具,将坐标点XY数据转换成可视化的点线面矢量数据,更加方便快捷有效的获取对应信息

qq_41046162的博客 3万+

变量的类型转换

变量的类型转换 在程序中,当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。根据转换方式的不同,数据类型转换可分为两种:自动类型转换和强制类型转换。 自动类型转换 自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。要实现自动类型转换,必须同时满足两个条件, 第一个是两种数据类型彼此兼容。第二个是目标类型的取值范围大于源类型的取值

470341698的博客 1470

【技术解析】LUT-Fuse:如何通过可学习查找表与蒸馏技术,为边缘设备解锁实时图像融合

本文解析了ICCV 2025提出的LUT-Fuse技术,它通过可学习查找表与知识蒸馏,解决了边缘设备上图像融合的质量、速度与功耗“不可能三角”。该方法将复杂计算预编译为高速查找表,在Jetson等设备上实现100+ FPS的实时红外-可见光图像融合,为无人机、安防等应用提供了高效解决方案。

code8的博客 495

数据清洗第六章操作题

一、对文本文件进行数据粒度转换,即将文本文件personnel_data.txt中字段household_register的数据统一成省份,并且输出到文本文档personnel_data_new.txt中。 1.打开Kettle工具,新建转换使用Kettle工具,创建一个转换generalization,添加文本文件输入控件、表输入控件、字段选择控件、排序记录控件、记录集连接控件、表输出控件以及Hop跳连接线。 2.配置文本文件输入控件,双击“文本文件输入”控件,进入“文本文件输入”界面,单击【浏览】按钮,

qq_45810941的博客 540

第一章、isaacsim 及 isaaclab 安装教程

本专栏所有内容将根据上述资源地址展开,请结合食用~

m0_47719040的博客 4779

【HAL库】STM32CubeMX开发----STM32F407----ETH+LAN8720A+LWIP----ping通

本次实验以芯片为MCU,使用25MHz外部时钟源。以太网PHY层芯片为LAN8720A,由MCU引脚PA8提供时钟。

MQ0522的博客 4843

Java学习笔记05——变量的类型转换(附一个强制转换实例)

Java中变量的类型转换分为自动转换和强制转换

qq_56666242的博客 2092

基于DFT的滤波系列:加窗滤波的 Matlab 实现

在实际应用中,你可以尝试不同类型的窗函数(如汉宁窗、汉明窗等)以及不同的滤波参数来获得所需的滤波效果。此外,还可以进一步了解 DFT 和窗函数的原理,以及其他数字信号处理技术的应用。加窗滤波是一种常用的数字信号处理技术,它通过在频域上应用窗函数来改善信号的频谱特性。我们通过定义输入信号、应用窗函数、进行 DFT 和逆 DFT,实现了滤波过程,并通过绘图进行了可视化。在频域上进行加窗滤波的关键是将窗函数应用于 DFT 的结果。首先,我们需要定义一个输入信号,这里我们使用一个简单的正弦波作为示例。

m0_47037246的博客 462

数据类型自动转换和强制转换示例

<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>测试Javascript</title></head> <body><form&gt...

darong0758的博客 227

VSCode PlantUML 插件超详细教程:从安装配置到实战绘图全流程

VSCode PlantUML 插件超详细教程:从安装配置到实战绘图全流程

weixin_69237381的博客 909

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python数据类型转换教学_Python常见数据类型转换操作示例

本文实例讲述了Python常见数据类型转换操作。分享给大家供大家参考,具体如下:类型转换主要针对几种存储工具:list、tuple、dict、set特殊之处:dict是用来存储键值对的。1、list 转换为setl1 = [1, 2, 4, 5]s1 = set(l1)print(type(s1))print(s1)输出:{1, 2, 4, 5}2、set转换为lists1 = set([1, 2...

weixin_39864373的博客 155

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VC++ 15个数据类型转换的示例代码

如何给VARIANT类型赋值 { VARIANT var; CString strText = _T(""); //初始化VARIANT类型变量 VariantInit(&var); //给VARIANT类型变量赋值 var.vt = VT_I4; var.lVal = (long)100; strText.Format(_T("var = %d"), var.lVal);

HelloKandy's Blog 1051

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python 数据类型转换教案_Python常见数据类型转换操作示例

本文实例讲述了Python常见数据类型转换操作。分享给大家供大家参考,具体如下:类型转换主要针对几种存储工具:list、tuple、dict、set特殊之处:dict是用来存储键值对的。1、list 转换为setl1 = [1, 2, 4, 5]s1 = set(l1)print(type(s1))print(s1)输出:{1, 2, 4, 5}2、set转换为lists1 = set([1, 2...

weixin_39875842的博客 526

byte[]与各种数据类型互相转换示例

package com.silot.test; import org.junit.Test; import java.io.*; import java.util.Arrays; public class Byte { /** * short到字节数组的转换. */ public static byte[] shortToByte(short numb...

霓虹深处 2869

mysql decimal 实现_mysql decimal数据类型转换的实现示例

mysql decimal数据类型转换的实现示例发布时间:2021-02-14 08:40:00来源:亿速云阅读:85作者:小新小编给大家分享一下mysql decimal数据类型转换的实现示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!最近在工作遇到数据库中存的数据类型是: decimal(14,4)遇到的问题是:当我使用python 读取到内存中时,总是带着 decimal...

weixin_39970668的博客 641

sql 查询mysql 数据类型转换_mysql数据类型转换的示例

mysql数据类型转换的示例发布时间:2021-02-14 17:40:01来源:亿速云阅读:63作者:小新这篇文章给大家分享的是有关mysql数据类型转换的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、问题有一张如下图所示的表,需要我们查出 result 值大于 reference_high值的数据然后我们写了下面的SQL查询语句SELECTi.result...

weixin_36123300的博客 1919

python数据类怎么转换_Python常见数据类型转换操作示例 python 怎么转换类型数据...

python 数据类型转换python 用networks工具包的mini_spanning_tree(G)函数分享的图G(邻接矩sure flower day, "flower你对小编说过,你跟小编在一起狠快乐,就像你的在小编身上的撒下一抹盐水,你狠快乐吗?那请继续。如何利用Python语言对字典数据类型进行各种操作小编们的距离或许很近,但心的方向却隔了好几公里。第一步,声明一个字典tree,赋...

weixin_29871897的博客 572
上一篇: 高质量C++/C 编程指南
下一篇: 截屏操作
goingup
博客等级 码龄22年 52粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值