数据类型
文章平均质量分 91
luckyone906
这个作者很懒,什么都没留下…
展开
-
原码反码补码的概念详解及转换方法实例
如果补码的首位是0,那它就表示一个正数,直接把二进制数转换为十进制数就行。例如:[x]补=00110010,因为(110010)2=50x的真值就是50。如果补码的首位是1,那它就表示一个负数,可以先-1算出它的反码,再根据反码写出原码。最后把符号位后面的二进制数转换为十进制数,前面加上“-”就行。例如:[x]补=10110010,则[x]反=10110001,[x]原=11001110(注意:符号位的1不参与取反不变)因为(1001110)2=78x的真值就是-78。原创 2024-04-27 11:45:35 · 8532 阅读 · 4 评论 -
C# 中xml数组的序列和反序列化方法
先来看xml<?xml version='1.0'?><root xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'> <Person> <Name>小莫</Name> <Age>20</Age> <Books> &l原创 2021-01-03 19:14:02 · 1854 阅读 · 0 评论 -
C#实现实体类和XML相互转换
一、实体类转换成XML将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化public static string XmlSerialize<T>(T obj){ using (StringWriter sw = new StringWriter()) { Type t= obj.GetType(); XmlSerializer s原创 2021-01-02 22:04:16 · 3374 阅读 · 1 评论 -
C#使用DataContractJsonSerializer来进行JSON解析
在使用DataContractJsonSerializer进行解析之前,我们首先需要将两个包引入进来:using System.Runtime.Serialization;using System.Runtime.Serialization.Json;接下来需要新建一个class,DataContractJsonSerializer可以将JSON字符串转化为指定的class或者将class转化为JSON字符串。这次我接受的JSON数据格式为:{ "ret": "0", "Isupdate"原创 2020-07-14 22:00:46 · 3820 阅读 · 0 评论 -
C#中JSON和对象之间互相转换功能示例
本文实例讲述了C#实现JSON和对象之间互相转换功能。分享给大家供大家参考,具体如下:1.首先是声明用户信息对象,DataContract修饰类,表示可以被解析成JSON,DataMember修饰属性,Order表示 解析的顺序,另外Lover是数组列表,表示女朋友个数Address 表示送货地址,DailyRecord 表示日常记录using System;using System.Collections.Generic;using System.Linq;using System..转载 2020-07-14 21:53:35 · 788 阅读 · 1 评论 -
C#JSON与XML相互转换
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using Newtonsoft.Json; namespace JSonConverter { class Program { static void Main(string[] a...原创 2020-07-02 21:14:00 · 2489 阅读 · 0 评论 -
C#序列化与反序列化以及深拷贝浅拷贝方法
基于二进制数据流的序列化和反序列化 /// <summary> /// 序列化 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param&g...原创 2020-03-16 20:31:43 · 335 阅读 · 0 评论 -
c# 深拷贝各种实现方式
1:利用反射实现 public T DeepCopy<T>(T obj) { object retval= Activator.CreateInstance(typeof(T)); PropertyInfo[] pis = typeof(T).GetProperties(); foreach (...原创 2020-03-16 20:30:39 · 1001 阅读 · 0 评论 -
C# 对象与JSON字符串互相转换的三种方式
JSON(JavaScriptObject Notation, JS 对象标记) 是一种轻量级的数据交换格式。 关于内存对象和JSON字符串的相互转换,在实际项目中应比较广泛,经过一番搜索,找到如下三种方法来解决此问题分别是使用Newtonsoft.Json.dll、DataContractJsonSerializer、JavaScriptSerializer。方法一:Ne...原创 2020-03-02 13:38:04 · 1540 阅读 · 0 评论 -
关于C++中vector和set使用sort方法进行排序
C++中vector和set都是非常方便的容器,sort方法是algorithm头文件里的一个标准函数,能进行高效的排序,默认是按元素从小到大排序将sort方法用到vector和set中能实现多种符合自己需求的排序首先sort方法可以对静态的数组进行排序1 #include<iostream>2 using namespace std;3 int main()...原创 2020-01-04 10:08:31 · 1569 阅读 · 0 评论 -
C#数组按值和按引用传递数组区别
C#中,存储数组之类对象的变量并不是实际存储对象本身,而是存储对象的引用。按值传递数组时,程序将变量传递给方法时,被调用方法接受变量的一个副本,因此在被调用时试图修改数据变量的值时,并不会影响变量的原始值;而按引用传递数组时,被调用方法接受的是引用的一个副本,因此在被调用时修改数据变量时,会改变变量的原始值。下面一个例子说明如下:using System;using System.Co...原创 2019-11-20 16:10:26 · 2305 阅读 · 0 评论 -
c++中类型用new和不用new的区别
解析一:new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高效。一、new创建类对象与不new区别下面是自己总结的一些关于new创建类对象特点:new创建类对象需要指针接收,一处初始化,多处使用 new创建类对象使用完需delet...原创 2019-10-31 18:30:12 · 4542 阅读 · 0 评论 -
值引用和引用问题分析
//在c++中,声明一个全局变量A a,然后在一个局部函数中创建类型A c赋值给a,对于值类型,如结构体等,是在栈中分配内存c,然后拷贝其内存所有值给a,//对于引用类型,如自定义的类等,如果不用new创建是在栈中分配内存c,此时如果将c赋值给a则函数结束后c就被系统销毁因为变量c是引用类型所以全局变量a就被销毁,//用new 的话则分配在堆内存中,需手动释放,全局变量a不会销毁。对于...原创 2019-10-16 16:39:27 · 213 阅读 · 0 评论 -
C++程序内存分配方式(堆与栈)
一、内存布局1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量值等,其操作方法类似数据结构中的栈。2、堆区(heap):一般由程序员分配释放,与数据结构中的堆毫无关系,分配方式类似于链表。3、全局/静态区(static):全局变量和静态变量的存储是放在一起的,在程序编译时分配。4、文字常量区:存放常量字符串。5、程序代码区:存放函数体(类的成员函数、全局函...原创 2019-10-16 16:18:01 · 484 阅读 · 0 评论 -
结构体和类的区别
结构体和类的区别: 在做一个项目时,使用了较多的结构体,并且存在一些结构体的嵌套,即某结构体成员集合包含另一个结构体等,总是出现一些奇怪的错误,才终于下决心好好分析一下到底类和结构体有啥不同,虽然它们很相似,但确实有很大的不同,用不好难免出的问题会比较多,现总结一下:一、结构体和类非常相似:1,定义和使用非常相似,例子如下:public struct Student{ st...转载 2019-10-16 14:18:04 · 43196 阅读 · 6 评论 -
c++中 结构体和类的区别
区别:结构是一种用关键字struct声明的自定义数据类型。与类相似,也可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套类型等,不过,结构是值类型。1.结构的构造函数和类的构造函数不同。 a.结构不能包含显式的无参数构造函数。结构成员将自动初始化为它们的默认值。 b.结构不能包含以下形式的初始值设定类:base(argument-list);2.对于结构中的...原创 2019-10-16 14:16:16 · 1105 阅读 · 0 评论 -
c#中结构体和类在队列中的引用类型问题
class test { public int a; }struct test { public int a; }voidtest(){List <test > tt= new List<test>(); test aa = new test(); ...原创 2019-10-16 12:36:26 · 856 阅读 · 0 评论 -
内存溢出问题分析
System.OutOfMemoryException大多是数据处理的过程中,对内存资源的管控太过于粗放建议对于非托管资源的使用不要过于随意内存分配的时候使用内存池的模式,避免内存泄露和内存碎片你的指针可能成为”野指针“了在DELETE后,应该NULL一下了!极可能是内存碎片导致申请失败。在剩余的几百兆断断续续的内存中申请到连续的一百多兆内存的成功率太低了。解决办...原创 2019-10-14 18:26:38 · 170 阅读 · 0 评论 -
指针强制转换问题
void ff(void* abc)//任意类型数据指针(指针即内存地址) { int* z = (int*)abc;//强制转换成int* 指针变量 int zz = *z;//获取内存中的值 }...原创 2019-02-26 11:56:47 · 492 阅读 · 0 评论 -
c++中默认32位int类型转换截取高位部分
int类型的变量固定为4个字节,共32位。int类型变量初始值一般为0,范围[-2^31 , 2^31 -1] 即 [-2147483648,2147483647]。16 位系统下,int 是 2 个字节;32 位,64 位的,int 是 4 个字节。有符号整数情况下:0xffffffff等于-1 负数时:0x0000ffff*0xffffffff=0xffff0000原创 2016-05-10 15:03:12 · 4378 阅读 · 0 评论 -
c++全局变量的正确声明
C++中全局变量声明错误情况造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量。可能存在两种情况: A、对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。其实这是错误的,全局变量是针对整个工程的。正确的应该是在一个CPP文件中定义如下:int g_Test;那么在使用的CPP文件中就应该使用:extern原创 2016-04-12 10:35:51 · 8014 阅读 · 0 评论 -
struct的创建
本文实例分析了C#中结构(struct)的部分初始化和完全初始化,分享给大家供大家参考。具体分析如下:假设有这样一个值类型struct,如下所示:?123456789public struct Size { publicint Length; publicint Wi原创 2016-04-11 22:06:30 · 1732 阅读 · 0 评论 -
DataTable转成字符串复制到txt文本的小例子
自己写了个DataTable转成字符串的方法 复制代码代码如下: public static string DataTableToString(DataTable dt) { string dtstring = ""; for (int i = 0; i { dtstring =dtstring+原创 2016-11-21 00:00:24 · 1109 阅读 · 0 评论 -
c#多维数组的建立及操作 总结
1C#如何定义和使用多维数组不建议使用ArrayList,当数组里的元素是值类型在操作的时候会出现大量的装箱与拆箱步骤性能会损失许多,而是应该用什么类型的元素创建什么类型的数组,除非你的元素有交叉或不确定才考虑采用ArrayList。多维数组定义如下:数组可以具有多个维度。例如,下列声明创建一个四行两列的二维数组:C#int[,]array = new int[4, 2];转载 2016-12-05 15:04:17 · 24232 阅读 · 0 评论 -
数组和指针、数组指针和指针数组
数组和指针、数组指针和指针数组、函数指针和指针函数、数组标识符的意义、静态和动态创建的数组的本质区别、标识符类型判断方法 [html] view plain copy print?#include iostream> using namespace std; void tArray1(int *p) {转载 2017-04-18 21:36:34 · 287 阅读 · 0 评论 -
C++中如何定义动态数组
首先:为什么需要动态定义数组呢? 这是因为,很多情况下,在预编译过程阶段,数组的长度是不能预先知道的,必须在程序运行时动态的给出 但是问题是,c++要求定义数组时,必须明确给定数组的大小,要不然编译通不过 如: int Array[5];正确 int i=5; in转载 2017-04-18 21:23:56 · 5094 阅读 · 0 评论 -
类中内容在内存中到底是如何分配的呢?
分类: 一个类,有成员变量:静态与非静态之分;而成员函数有三种:静态的、非静态的、虚的。 那么这些个东西在内存中到底是如何分配的呢? 以一个例子来说明: [html]view plaincopyprint? #include"iostream.h" class CObject {转载 2017-08-04 13:58:47 · 393 阅读 · 0 评论 -
数组内存分配概念
在这里解答一下:int arr[4];&arr[1] = arr[0] + sizeof(int) ;静态分配, 即普通数组, 由于在栈中分配, 而栈的生成方向是自高地址向低地址生成。 所以有:&arr[0] > &arr[1] ....动态分配的数组。针对动态数组。 动态数组的内存分配在heap中。 而heap 的生成是由低地址向高地址生成。 所以有:&arr[0转载 2018-01-02 12:08:27 · 3263 阅读 · 1 评论 -
静态数组和动态数组 内存分布
数组是程序设计中是一个非常重要的概念。数组是一个用于收集大量类似数据的容器,以及其每一个元素能被相同处理过程迭代来处理的一个抽象体。创建数组一般有三种方式:全局/静态范围的数组,局部变量数组,申请堆空间来创建数组。其中,全局/静态范围的数组,以及局部变量属于静态数组。而申请堆空间来创建数组的属于动态数组。a[7]与p1_a[7]是一样的么?静态两维数组的排列顺序转载 2018-01-02 12:18:25 · 4550 阅读 · 0 评论 -
C语言 内存分配 地址 指针 数组 参数 解析
指针简介 : 指针式保存变量地址的变量;-- 增加阅读难度 : 指针 和 goto 语句会增加程序的理解难度, 容易出现错误;-- ANSI C : American National Standards Institute 美国国家标准学会, 即标准C;-- 通用指针类型 : ANSI C中使用 void* 作为通用指针类型, 即指向void的指针, void 是空类型,void转载 2018-01-02 12:22:54 · 374 阅读 · 0 评论 -
C++数组与指针概念
指向数组元素的指针一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。所谓数组元素的指针就是数组元素的地址。 int a[10]; //定义一个整型数组a,它有10个元素 int *p; //定义一个基类型为整型的指针变量p p=&a[0];转载 2018-01-02 13:34:09 · 692 阅读 · 0 评论 -
C语言中指针的初始化和赋值
1、指针的初始化指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。此时,*p只是表示定义的是个指针变量,并没有间接取值的意思。例如:int a = 25;int *ptr = &a;int b[10];int *point = b; int *p = &b[0];转载 2018-01-03 14:58:44 · 16248 阅读 · 3 评论 -
C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)
BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段 :数据段(data segment)通常是指用来存放程序中 已初始化 的 全局变量 的一块内存区域。数据段属于静态内存分配。 代码段: 代码段(code segment/t转载 2017-12-28 16:05:42 · 2603 阅读 · 0 评论 -
c++中LPCTSTR,LPTSTR 解释
char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。Windows为了消除各编译器的差别,重新定义了一些数据类型,你提到了另外几个类型都是这样。CHAR为单字节字符。还有个WCHAR为Unicode字符,即不论中英文,每个字有两个字节组成。它实际定义在<string.h>里: typedef unsigned short wchar_t。下面在看...转载 2019-02-15 11:49:39 · 24175 阅读 · 1 评论 -
计算机大端模式和小端模式 内存对齐问题(sizeof)
目录(?)[+]一大端模式和小端模式的起源二什么是大端和小端三数组在大端小端情况下的存储四为什么会有大小端模式之分呢五如何判断机器的字节序内存对齐问题再讲讲pragma pack内存对齐二一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu原创 2016-11-14 12:57:22 · 787 阅读 · 0 评论