类型转换

常用的时间类型转换

◇◆丶佛笑我妖孽 提交于 2019-12-03 23:16:58
在程序开发过程中不断会碰到不同的数据间的转换,在这里做一个总结: 一.时间类型间的转换: 1.time_t 转 FILETIME FILETIME ft; LONGLONG ll = Int32x32To64(t, 10000000) + 116444736000000000; ft.dwLowDateTime = (DWORD) ll; ft.dwHighDateTime = (DWORD)(ll >> 32); 2.FILETIME 转 time_t FILETIME ft; time_t t; LONGLONG llTime = ft.dwHighDateTime; llTime <<= 32; llTime |= ft.dwLowDateTime; t = (DWORD)((LONGLONG)(llTime - 116444736000000000) / 10000000); 3. SYSTEMTIME 转 FILETIME FILETIME ft; SYSTEMTIME st ; SystemTimeToFileTime( &st, &ft ); 4. FILETIME 转 SYSTEMTIME FILETIME ft; SYSTEMTIME st ; FileTimeToSystemTime( &ft, &st); 5.DATE 转 SYSTEMTIME DATE

父类强制转换为子类

自古美人都是妖i 提交于 2019-12-03 23:15:11
java的强制类型转换 强制类型转换,又叫造型。分为基本数据类型和引用数据类型两种情况,这里探讨后者,即引用类型的强制类型转换。 对于引用类型来说,什么是强制类型转换呢?简单地说,就是把父类型转换为子类型。因为子类型比父类型的内涵要丰富,无非就是属性更多功能更强,所以要把父类型转换为子类型,需要强制,所以叫强制类型转换。那么,是不是只要是父类型的变量就可以转换为子类型呢?事实上不是,这里是有条件限制的。 首先来看发生在什么情况下。我们用一个类型的构造方法构造出一个对象的时候,对象的类型已经确定了,就是这个类型,但是java允许我们可以不用这个类型的变量引用它,而使用它的父类类型,这时候情况就是我们用一个功能较弱的类型引用了一个功能较强的对象。然而有时候我们又希望这个对象完全发挥它的作用,就需要用一个它本身的类型的变量来引用它,因为原来那个父类的变量是不具备这些功能的,不能使用variablename.function()来使其发挥作用,所以还是用它自己的吧。问题是对象已经在内存中了,已经构造完了,你即使声明一个它本身类型的变量怎么指向它呢?答案是借助原来那个变量,就是它父类型的那个变量,让新的变量和原来的那个指向同一个对象。方式就是两者之间划等号。可是引用类型变量的相等需要两者类型相同,问题是不相同,怎么办?那就是把父类型的变量强制转换成子类型。 举个例子来说

《从问题到程序》第一、二章学习总结

我的未来我决定 提交于 2019-12-03 20:29:50
《从问题到程序》第一、二章学习总结 程序设计与C语言 程序设计过程 程序一词也来自生活,通常指完成某些事务的一种既定方式和过程。一个复杂的程序分解成为若干相对简单一些的程序,部分编程序时所需要掌握的恰恰就是这种工作方式。我们需要从问题的要求出发,从高层开始设计程序,并逐步分解程序功能。当将程序所需功能分解到一定的细节程度之后,就可以借助于程序语言的结构,描述程序工作中的细节步骤了。 C程序 用 C 语言写的程序简称为 C 程序。 #include <stdio.h> int main () { printf("Good morning!\n"); return 0; } 上面这个简单程序可分为两个基本部分:第一行是个特殊行,说明程序用到 C 语言系统提供的标准功能,为此要参考标准库文件 stdio.h,有关细节在第五章介绍。空行下的几行是程序基本部分,描述程序所完成的工作。该程序的意义就是产生一行输出“Good morning!”。 C 语言是高级程序语言,用 C语言写出的程序通常称作源程序,人容易使用、书写和阅读,但计算机却不能直接执行,因为计算机只能识别和执行特定二进制形式的机器语言程序。为使计算机能完成某个 C 源程序所描述的工作,就必须首先把这个源程序(如上面简单例子)转换成二进制形式的机器语言程序,这种转换由 C 语言系统完成。 数据对象与计算

数据类型

不想你离开。 提交于 2019-12-03 14:56:29
在Go中除了有最基础的整型、浮点型、布尔型、字符串以外,还拥有数组、切片、结构体、函数、map、通道(channel)等。其中基本类型和别的语言都是大同小异的 整型:   整型主要分成了两大类:按长度分为了:int8、int6、int32、int64对应的就是无符号整型:uint8、uint16、uint32、uint64   其中uint8就是我们熟悉的bytes类型,int16对应了C语言中的short类型,int64对应了C语言中的long类型 特殊整型:      ps:在使用int和uint的时候,不能假定它是32或者64位的整型,而是考虑int和uint可能在不同的平台上面的使用的差异     获取对象的长度用内建函数len() 函数返回的长度可以根据不同平台的字节长度进行变化。在实际的使用中切片或者map的元素数量等都可以用int来表示。在涉及到二进制传输、读写文件的结果描述的时候,为了保持文件的结构不会受到不同编译目标平台字节长度的影响,不要使用int和uint。 字符串:   Go语言中的字符串以原生数据类型出现,使用字符串就像是使用其它原生数据一样,Go语言里的字符串的内部实现使用utf8编码。字符串的值为双引号中的内容,可以在Go语言的源码中直接添加非ascii码的字符      字符串转义符:     \n:换行符(直接跳到下一行的同列位置)     \r

python之容器类型转换和推导式

柔情痞子 提交于 2019-12-03 13:33:56
摘要:本文主要介绍了数据类型的转换和推导式的相关内容。 1、类型转换 本部分的类型转换主要是列表、元组、集合三种类型的转换。主要借助三个函数 list()、tuple()、set() 分别进行列表、元组、集合的类型转换。 1 list1 = [10, 20, 30, 20, 40, 50] 2 s1 = {100, 300, 200, 500} 3 t1 = ('a', 'b', 'c', 'd', 'e') 4 5 # tuple(): 转换成元组 6 print(tuple(list1)) 7 print(tuple(s1)) 8 9 # list():转换成列表 10 print(list(s1)) 11 print(list(t1)) 12 13 # set():转换成集合 14 print(set(list1)) 15 print(set(t1)) 执行结果如下: 1 (10, 20, 30, 20, 40, 50) 2 (200, 100, 500, 300) 3 [200, 100, 500, 300] 4 ['a', 'b', 'c', 'd', 'e'] 5 {40, 10, 50, 20, 30} 6 {'c', 'd', 'e', 'b', 'a'} 2、推导式 推导式在列表中的使用: 1 #连续添加一串数字到列表中 2 #方法1:非推导式的方法 3

“简历还我”系列:看似简单的三目运算面试题

送分小仙女□ 提交于 2019-12-03 13:11:06
面试题 废话不多说,直接上题: 提问:当 a=1,b=2 时,test1 方法的执行结果是什么?思考一分钟。 答案: 解析 在使用三目运算符时,尽量保证两个返回值的类型一致,不然会触发类型转换 ,转换规则如下: 如果返回值 X 和返回值 Y 是同种类型,那么返回类型毫无疑问就是这种类型。 如果两个返回值 X 和 Y 的类型不同,那么返回值类型为他们两最接近的父类。举例: // String 和 Boolean 都实现了 Serializable 接口 Serializable serializable = a == b ? "true" : Boolean.FALSE; // 所有类都继承了 Object 类 Object o = a == b ? new ArrayList<>() : new TernaryOperatorDemo(); 对于基本数据类型,如果其中一个返回值 X 类型为 byte 、 short 或者 char ,另一个返回值 Y 类型为 int ,那么若在编译期就能判断出 Y 的取值范围在 X 的取值范围之内,则返回类型为 X 的类型,反之则为 Y 的类型。如果返回值 X 类型不为以上几种,则会触发隐藏类型转换。 当基本数据类型和对象数据类型相遇时,三目运算符默认返回结果为基本数据类型。 了解以上规则之后,我们再看来一下 test1 方法。 private

类型转换

天涯浪子 提交于 2019-12-03 11:39:31
CommonResponse<UserAccountsModule> userAccounts = JSONObject.parseObject(result, new TypeReference<CommonResponse<UserAccountsModule>>(){}); Map<String,List<JSONObject>> permissonMap = JSONObject.parseObject(permissionStr, new TypeReference<Map<String, List<JSONObject>>>(){}); 来源: https://www.cnblogs.com/qqq9527/p/11794384.html

JavaScript类型转换

只愿长相守 提交于 2019-12-03 11:20:53
JavaScript数据类型 string number boolean object function JavaScript对象类型 Object Date Array 2个不包含任何值的数据类型 null undefined constructor属性 返回所有JavaScript变量的构造函数 转换为字符串 String(x); x.tostring(); x可以是数字,字母,变量,表达式,布尔值,日期方法等。 字符串转换为数字 +可以将变量转换为数字 var y = "5"; var x = +y; //x为5 var y = "y"; var x = +y; //x为NaN 布尔值转换为数字 Number(true) //返回1 Number(false) //返回0 来源: https://www.cnblogs.com/1016391912pm/p/11793366.html

第11课.新型的类型转换

早过忘川 提交于 2019-12-03 11:02:13
1.新型类型转换 c++将强制类型转换分为4种不同的类型 static_cast const_cast dynamic_cast reinterpret_cast 用法: xxx_cast<Type>(Expression) static_cast a.用于基本类型间的转换 b.不能用于基本类型指针间的转换 c.用于 有继承关系类对象之间 的转换和 类指针 之间的转换 const_cast a.用于去除变量的只读属性 b.强制转换的目标类型必须是指针或引用 reinterpret_cast a.用于指针类型间的强制转换 b.用于整数和指针类型间的强制转换 dynamic_cast a.用于 有继承关系的类指针 间的转换 b.用于 有交叉关系的类指针 间的转换 c.具有 类型检查 的功能 d.需要虚函数的支持 #include <stdio.h> void static_cast_demo() { int i = 0x12345; char c = 'c'; int* pi = &i; char* pc = &c; c = static_cast<char>(i); //int型的i转化为char型,赋值给c pc = static_cast<char*>(pi); //error } void const_cast_demo() { const int& j = 1; int& k

C++ 类型转换符区别分析

白昼怎懂夜的黑 提交于 2019-12-03 10:12:22
转载自: https://blog.csdn.net/legalhighhigh/article/details/87459995 1.static_cast 用于将参数转换为指定类型。需要注意的是,进行类型转换时,编译器不会进行类型检查保证安全性。当对类对象进行下行类型转换时,也不会进行动态类型检查,因此是不安全的。static_cast中提供了空指针与任何类型指针的互相转换。 2.dynamic_cast 用法与static_cast基本类似。但在进行类型转换时,编译器会主动进行类型安全检查。dynamic_cast同样支持进行上下行类型转换,但编译器会进行类型检查。当下行转换时,如果父类中不包括虚函数,则编译器会报错。另外,dynamic_cast不支持空指针与一般指针之间的转换。 3.const_cast const_cast用来修改(去掉)对象的const、volatile和_unaligned属性,除此之外,转换前后的变量并无区别,甚至它们在内存中的地址也是相同的。 来源: https://www.cnblogs.com/laiyingpeng/p/11788004.html