首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言:十进制、BCD互换

个四位的BCD不能够表达十进制的两位数,因此当数字大于九时,我们需要用八位BCD来表示。高位只需要逢九进即可。...十进制是逢十进,而十六进制是逢十六进,它们之间的每次进位差6,所以个十进制数要转换成BCD,要先算清多进位的位数。...例如,十进制99进位了99/10=9次,每次进位和十六进制进位相比差6,所以共差了9×6=54,即BCD为:99+54=153(十六进制:0X99)。BCD转化成十进制样原理。...转换为十进制,代码如下所示: int bcd_decimal_code( int bcd) { int sum = 0, c = 1; // sum返回十进制,c每次翻10倍 for(int...i = 1; bcd > 0; i++) { if( i >= 2) { c*=10; } sum += (bcd%16) * c; bcd /= 16; // 除以16

1.8K30

文攻破BCD转换与各进制转换

文攻破BCD转换与各进制转换 0.导语 最近做的项目中时刻看到时间戳用BCD[xx]来定义,那么针对这种定义,究竟代表什么意思,如何来使用呢,本节来阐述BCD与其他进制转换以及在笔试当中,会碰到进制转换问题...是种二进制的数字编码形式,用二进制编码的十进制代码。 BCD这种编码形式利用了四个位元来储存个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。...相对于般的浮点式记数法,采用BCD,既可保存数值的精确度,又可免去使电脑作浮点运算时所耗费的时间。 此外,对于其他需要高精确度的计算,BCD编码亦很常用。...,都要 6 进行修正。...C实现 使用C语言来完成这个任务,将十进制数转换为十六进制数时使用sprinf(),而将十六进制数转换为十进制数时使用strtol() int de=19; char ch[10]; // 方法1 //

3.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

c 语言壳项目,C 壳工具,快速完成加密保护

当前C# .net语言的应用范围越来越广泛,IIS 的服务器架构后台代码、桌面应用程序的 winform 、Unity3d 的逻辑脚本都在使用。C# .net 具备强大的便捷特性,使得开发成本极低。...而作为款.net 语言,也有它让开发者头疼的弊病——非常容易被反编译。市面上的 Dnspy, ILspy,de4dot等工具可以非常容易反编译出被混淆保护的C# .net 程序。...01解决方案 深思自主研发了为 C# .net 语言做保护的外壳:Virbox Protector .NET版。...将C# .net 编译成的执行程序(.exe),动态库(.dll)直接拖入壳工具即可完成保护操作,十分方便。并且在效果上已经完全看不到源码中的逻辑。...3、因此添加了强名称的程序壳时要去除强名称, 并在壳后重新添加强名称。 05函数级保护-代码加密 原理 代码加密是使用动态代码技术,将原始方法字节加密,执行时才将方法解密并执行的保护方式。

1.6K20

c语言-键盘扫描

定义:   键盘上的每个键都有两个唯的数值进行标志。为什么要用两个数值而不是个数值呢?这是因为个键可以被按下,也可以被释放。...当个键按下时,它们产生个唯的数值,当个键被释放时,它也会产生个唯的数值,我们把这些数值都保存在张表里面,到时候通过查表就可以知道是哪个键被敲击,并且可以知道是它是被按下还是被释放了。...这些数值在系统中被称为键盘扫描   扫描大全: 扫描 键 0x011b ESC 0x3b00 F1 0x3c00 F2 0x3d00 F3 0x3e00 F4 0x3f00 F5 0x4000 F6...l 0x273b ; 0x2827 ' 0x1c0d 回车 0x2c7a z 0x2d78 x 0x2e63 c 0x2f76 v 0x3062 b 0x316e n 0x326d m 0x332c ,...--键盘---键盘扫描---BIOS键盘驱动程序----ASCII----汉字输入软件----汉字内码

1.5K20

C语言变量声明冒号的用法

为了节省存储空间,并使处理简便,C语言又提供了种数据结构,称为“位域”或“位段”。所谓“位域”是把个字节中的二进位划分为几 个不同的区域,并说明每个区域的位数。...例如: struct bs { int a:8; int b:2; int c:6; }data; 说明data为bs变量,共占两个字节。其中位域a占8位,位域b占2位,位域c占6位。...例如: struct bs { unsigned a:4 unsigned :0 /*空域*/ unsigned b:4 /*从下单元开始存放*/ unsigned c:4 } 在这个位域定义中...,a占第字节的4位,后4位填0表示不使用,b从第二字节开始,占用4位,c占用4位。...例如: struct k { int a:1 int :2 /*该2位不能使用*/ int b:3 int c:2 }; 从以上分析可以看出,位域在本质上就是种结构类型, 不过其成员是按二进位分配的

2.7K10

C语言指针 1 引发的思考

问题背景 最近有小伙伴对于 C 语言中指针的运算有点疑问:指针变量 1 之后,到底向后偏移了几个字节呢?...结构体 C 语言中 struct 声明创建个数据类型(结构体),能将不同类型的对象聚合到个对象中,用名字来引用结构体的各个组成部分。结构体的所有组成部分都存放在段连续的内存中。...理解指针 指针定义 每个指针都对应个类型。这个类型表明该指针指向的是哪类对象。指针的类型不是机器中的部分,而是C语言提供的种抽象,帮助程序员避免寻址错误。 每个指针都有个值。...指针转换 通过类型转换,可以将指针从种类型转换为另种形式,改变的只是它的类型,值是不会改变的。 C语言中的类型转换有两种:隐式类型转换和强制类型转换。...指针运算 C语言的指针运算有两种形式。 第种:指针 ± 整数 这种计算出来的值,会根据该指针指向的某种数据类型的大小进行伸缩。

1.3K20

谈谈C语言中的字符与ASCII

小贴士 C语言中 char 数据类型 般是个字节(八位)的整数类型。char 数据类型只可能容纳个字符,所谓的字符,可以理解为键盘上的按键,例如字母、数字、加减乘除、空格等。...char 数据类型在C语言中需要用英文单引号引用字符,例如:char ch = 'A' 。char 数据类型 需要用占位符 %c 输入和输出。...ASCII (英文全称 American Standard Code for Information Interchange )是基于拉丁字母的套电脑编码系统,主要用于显示现代英语和其他西欧语言。...我们还可以利用C语言个程序查询字符对应的ASCII值 源代码如下: #include int main() { char ch; printf("请输入个字符:\n"...值 反之,我们还可以利用C语言编写个查询ASCII值对应的字符 源代码如下: #include int main() { char ch; printf("请输入个ASCII

1.1K10

C语言_第讲_C语言入门

C语言的简介 1.C语言个标准,而执行标准的时候产生的自动化程序则是编译器 2.了解:1983年美国国家标准化歇会(ANSI)制定了C语言标准....C语言的特点: 3.代码的可移植性(理想状态是代码可以不加修改,就可以移植,前提是不包括任何平台相关库) 4.写代码的时候最好把业务逻辑层和UI层分开.这样便于代码的移植 5.结构化编程(可以把问题分解成个的函数去执行...) 6.丰富的数据类型(相对于汇编而言是丰富的) 7.简洁高效的代码(这得看人,不是编译器的或者语言的特性,如果算法写的不好,样执行速度慢,和语言无关.反之则相反); 二、代码和调试之间的比例 1.调试和写代码的时间比例是...符号在C语言中的场景不样,那么就会有不同的作用 2.列如: 3.++ + + 2个加号就和加号的意思不样 4....0000 0000 第二步:去掉符号位,取指数位(32位下是8位) 0是符号位去掉之后的值是 1000 1000 128 +8 = 136 第三步:用指数得出的值减去127 然后尾数从指数后面的前面1

1.6K00

C语言初阶(

前言: C语言已经学习了部分了,我计划写点与C有关的文章。希望能坚持下去。 这不是我的第篇博客,但胜似我的第篇博客。 第次体会到写博客也不容易啊,加油!...---- C简介 C语言门面向过程的计算机编程语言,是编译型语言。 第C程序 C的数据类型 变量与常量 标准输入与输出 C编译器 Clang、gcc、MSVC等。...啥都不管,先写第C语言程序! #include int main(){ printf("Hello World!...\n"); return 0; } 编译运行结果: 记住标准C语言格式 #include int main(){//c语言程序必须有且只有个main函数,即主函数...char占1字节 int般为4字节,但所占字节数定有:long int >= int >= short int. float般为4字节,double般为8字节,但所占字节数定有 double

19610

C语言:指针(

事实上,内存被划分为个个的内存单元(对应这个寝室),每个单元的大小取个字节。...个字节里面放八个比特位(相当于个寝室里面住8个人),每个内存单元也都有个编号(相当于门牌号),有了这个内存单元的编号,CPU就可以快速找到个内存空间,进而进行相关操作。...在生活中,门牌号也是地址的部分,在计算机中,内存单元的编号也叫地址。C语言给地址也起了个新的名字:指针。...我们大致可以理解为: 内存单元的编号==地址==指针 2 指针变量和地址 2.1 取地址操作符(&) 在C语言中创建变量其实就是向内存申请空间, 上述代码就是创建了整型变量a,内存中申请了四个字节,用于存放整数...NULL是C语言中定义的个标识符常量,值是0,0也是地址,这个地址是无法使用的,读写该地址会报错。

8710

C语言心得

C语言学习 ---- C语言个非常灵活且高效的语言,在学习的过程中总会有很多坑。最近有个项目是混合编程,高性能部分采用C/C++来完成,数据处理和分析采用Python来完成。...Python去调用C/C++生成的动态链接库(例如:Linux是.so文件,osx是.dylib文件)。...作用域、链接属性和存储类型 本文只是简单的介绍C语言的作用域、链接属性和存储类型。写这篇博客主要是为了学习和记录自己的知识。这里简单的介绍了c语言的作用域和链接属性。...我们来看下例子: // // main.c // Test // // Created by brian on 6/28/16. // Copyright © 2016 brian....链接属性 c语言中标识符链接属性的设计主要是为了解决命名冲突问题,当多个源文件被编译成目标文件再链接成个可执行文件或者链接库时,如果出现了相同的标识符如何解决?这就是链接属性的设计的用处。

1K60

文讲透CRC校验-附赠C语言实例

数据通信领域中最常用的种差错校验,其信息字段和校验字段长度可以任意指定,但要求通信双方定义的CRC标准致。主要用来检测或校验数据传输或者保存后可能出现的错误。...,很多看过CRC高级语言源码的人会知道,对于CRC_16标准下G(X)=X16+X15+X2+1(16#18005)的poly值实际上是8005,这里使用的就是简记式。...而在结果异或值不为零的情况下,则需要将计算得到的CRC结果值再与结果异或值进行次异或计算,得到的最终值才是我们需要的CRC校验。 这里可以看出,初始值与结果值的位数要求与数据宽度致。...通俗的说,就是在需要发送的信息后面附加个数(即校验),生成个新的发送数据发送给接收端。这个数据要求能够使生成的新数据被个特定的数整除。这里的整除需要引入模 2除法的概念。...CRC校验(注:余数必须比除数少且只少位,不够就补0) (3)将这个校验附在原m位数据后面,构成新的M+K-1位数据,发送给接收端。

3.3K20

C语言——指针(

,指针与指针变量 相信大家在学习C语言的时候常常听到别人提起地址和指针,那究竟什么是地址?什么是指针?什么又是指针变量?...●C语言中的地址也是这样: 计算机的内存有很多储存单元,为了区分这些储存单元,计算机的操作系统就给每个储存单元都分配了自己唯的编号,当我们在C语言中定义变量的时候,编译器就会给变量分配储存空间,这个储存空间的编号就是存放变量的地址...2,指针 C语言把数据储存的起始地址称为指针。 简单来说:“指针”不过是C语言中对地址的个新描述,新名字。...例如: int *p1; //指p1存放的是个存放整型数的起始地址。 float *p2; //指p2存放的是个存放浮点数的起始地址。...那么指针变量的大小也就取决于放个地址需要多大的空间 计算机决定的: 在32位机器上,存放个地址要32个bit位,那么,在**32位机器上,个地址的大小就是4个字节,指针变量的大小也就是4个字节

7410

C语言C语言简介

C语言介绍 C种通用的编程语言,广泛用于系统软件与应用软件的开发。...C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。...二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了套完整的国际标准语法,称为ANSI C,作为C语言的标准。...二十世纪八十年代至今的有关程序开发工具,般都支持匹配ANSI C的语法。 ? 二、C语言特点 C语言个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。...,用来指定显示宽度,小数尾书及左对齐等: - 左对齐 + 在个带符号数前"+"或"-"号 0

1.9K00
领券