一个四位的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
一文攻破BCD码转换与各进制转换 0.导语 最近做的项目中时刻看到时间戳用BCD[xx]来定义,那么针对这种定义,究竟代表什么意思,如何来使用呢,本节来阐述BCD码与其他进制转换以及在笔试当中,会碰到进制转换问题...是一种二进制的数字编码形式,用二进制编码的十进制代码。 BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。...相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使电脑作浮点运算时所耗费的时间。 此外,对于其他需要高精确度的计算,BCD编码亦很常用。...,都要加 6 进行修正。...C实现 使用C语言来完成这个任务,将十进制数转换为十六进制数时使用sprinf(),而将十六进制数转换为十进制数时使用strtol() int de=19; char ch[10]; // 方法1 //
加一 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。...= 9) // 这个题就是这里需要特判一下 { digits[i] += 1; return digits;...} else digits[i] = 0; // 这里就是可以进位的情况 } // 如果最后第一位都为0了那么就直接返回一个只有一个0的数组
当前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函数级保护-代码加密 原理 代码加密是使用动态代码技术,将原始方法字节码加密,执行时才将方法解密并执行的保护方式。
定义: 键盘上的每一个键都有两个唯一的数值进行标志。为什么要用两个数值而不是一个数值呢?这是因为一个键可以被按下,也可以被释放。...当一个键按下时,它们产生一个唯一的数值,当一个键被释放时,它也会产生一个唯一的数值,我们把这些数值都保存在一张表里面,到时候通过查表就可以知道是哪一个键被敲击,并且可以知道是它是被按下还是被释放了。...这些数值在系统中被称为键盘扫描码 扫描码大全: 扫描码 键 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码----汉字输入软件----汉字内码
为了节省存储空间,并使处理简便,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 }; 从以上分析可以看出,位域在本质上就是一种结构类型, 不过其成员是按二进位分配的
问题背景 最近有小伙伴对于 C 语言中指针的运算有点疑问:指针变量加 1 之后,到底向后偏移了几个字节呢?...结构体 C 语言中 struct 声明创建一个数据类型(结构体),能将不同类型的对象聚合到一个对象中,用名字来引用结构体的各个组成部分。结构体的所有组成部分都存放在一段连续的内存中。...理解指针 指针定义 每个指针都对应一个类型。这个类型表明该指针指向的是哪一类对象。指针的类型不是机器码中的一部分,而是C语言提供的一种抽象,帮助程序员避免寻址错误。 每个指针都有一个值。...指针转换 通过类型转换,可以将指针从一种类型转换为另一种形式,改变的只是它的类型,值是不会改变的。 C语言中的类型转换有两种:隐式类型转换和强制类型转换。...指针运算 C语言的指针运算有两种形式。 第一种:指针 ± 整数 这种计算出来的值,会根据该指针指向的某种数据类型的大小进行伸缩。
码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist Gitee代码仓库:码蹄杯代码 ⭐MT1515整型变量和它的指针 定义一个整型变量和指针,让指针指向这个变量...int x, *p; scanf("%d", &x); p = &x; printf("%d\n", *p); return 0; } ⭐MT1517顺序输出 编写一个程序...scanf("%d %d %d", &a, &b, &c); x = &a; y = &b; z = &c; if ((*x 一个交换函数,用指针做参数,将它们按由小到大的顺序放到a,b,c中再输出。...p = &x; printf("%c\n", *p); return 0; } ⭐MT1534指针递增 编写一个使用指针递增方式访问数组a的元素的程序。
码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist ⭐MT1328用函数求和 定义一个函数int add(int x,int y) ,在主函数中输入两个整数...main() { int n; scanf("%d", &n); printf("%d\n", func(n)); return 0; } ⭐MT1332用函数求最大值 定义一个函数...用函数求最小值 定义一个函数 ,在主函数中输入4个整数 ,调用函数求最小值,再在主函数中输出。...double x; scanf("%lf", &x); printf("%d\n", getfloor(x)); return 0; } ⭐MT1336用函数求阶乘 定义一个函数...) { int x; scanf("%d", &x); printf("%d", fact(x)); return 0; } ⭐MT1337n次方 编写函数fun,求任一整数
码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist ⭐MT1381逆序输出数组 定义一个长度为10的整型数组,输入10个数组元素的值,然后逆序输出他们...for (i = N - 1; i >= 0; i--) { printf("%d ", a[i]); } return 0; } ⭐MT1382奇数项 定义一个长度为...= 1; i < N; i) { printf("%d ", a[i]); i += 2; } return 0; } ⭐MT1385查找 在一组给定的数据中...输出格式: 依次输出元素频次,每个一行。...格式 输入格式: 第一行输入数组元素个数N为整型,第二行输入元素,如样例所示。 输出格式: 输出为整型,前面是元素,后面是出现的次数,每种一行。
什么是ASCII码?...ASCII (American Standard Code for Information Interchange):美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言...一....在C语言中,我们可以将字符通过特殊转化为数字,通过数字的大小比较两个字符的大小: 小写字母转换大写字母,使用ASCll值进行转换 解题思路:利用 ASCII 码中大写字母和小写字母之间的转换关系(差值为...#include int main() { char a, b; int c; printf("输入一个字符:"); a = getchar();
码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist ⭐MT1185while循环 请编写一个简单程序,从小到大输出所有小于8的正整数和0(从0开始输出)...while (i < 8) { printf("%d ", i); i++; } return 0; } ⭐MT1186do-while循环 请编写一个简单程序...,随机输入n个数字,输出他们的平均值 格式 输入格式: 输入分两行,第一行输入n,第二行输入n个float型数据,空格分隔 输出格式: 输出float型,空格分隔,保留2位小数 #include<...格式 输入格式: 输入分两行,第一行输入整数n,第二行输入n个实数,空格分隔。...格式 输入格式: 输入整型,每组一行,如样例所示。 输出格式: 输出计算结果实型,如样例所示。
码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist ⭐MT1565长者 输出结构体数组中年龄最大者的数据 ,请设计一个结构体, 信息包括名字,年龄 。...格式 输入格式: 每行输入一个员工的数据,空格分隔。...格式 输入格式: 每行输入一个学生的数据,空格分隔。...{ return student_a; } else { return student_b; } } ⭐MT1572交网费 小码哥又喜欢看电视又喜欢打电话聊天...从键盘输入数据,包括第几季度、该季度网费、话费,其全部整型,计算小码哥今年花了多少钱。不考虑非法输入等特殊情况。 格式 输入格式: 每行输入一组数据,空格分隔。
⭐MT1100带参数的宏 请编写一个简单程序,把f(x)=(x*x)定义成带参数的宏,计算f(9)/f(6)并输出结果。...f(x) ((x)*(x)) int main() { printf("%lf\n", f(9.0) / f(6.0)); return 0; } ⭐MT1101带参数的宏II 请编写一个简单程序...2.54) #define FEET_m(x) ((x) * 0.31) #define MILE_km(x) ((x) * 1.61) int main() { double a, b, c;...scanf("%lf %lf %lf", &a, &b, &c); printf("%.2lf %.2lf %.2lf\n", INCH_cm(a), FEET_m(b), MILE_km...(c)); return 0; } ⭐MT1107加仑/升 定义关于容量的宏,加仑/升,计算单位转换,在主函数中输入数据输出计算结果。
码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist ⭐MT1041求圆面积和周长 请编写一个简单程序,输入半径,输出圆面积和周长。...printf("Area=%.6lf\nCircumference=%.6lf", area, perimeter); return 0; } ⭐MT1042求矩形的面积和周长 请编写一个简单程序...&y); printf("Area=%.6lf\nPerimeter=%.6lf", x * y, 2 * (x + y)); return 0; } ⭐MT1043椭圆计算 请编写一个简单程序...= sqrt(c); P = (A + B + C) / 2.0; S = sqrt(P * (P - A) * (P - B) * (P - C)); printf("%.2lf...格式 输入格式: 依次输入4个顶点A,B,C,D的坐标(x,y),四边形一定是凸四边形,整型,空格分隔。 输出格式: 输出实型,保留2位小数。
一、ASCII码的引入 在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号...,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示 二、ASCII码的表达方式 ASCII 码使用指定的7 位或8 位二进制数字组合来表示128 或256...所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。...#174; 175 257 AF 10101111 ¯ ¯ 176 260 B0 10110000 ° ° 温度符号 177 261 B1 10110001 ± ± 加/...- 基本ASCII码和扩展ASCII码,最全的ASCII码对照表 (asciim.cn)
自测-双指针算法 先让AI自己出一个C++的双指针题目。 基础算法题目还成。 经典算法-八皇后 经典八皇后题目也是没有问题的。...,迷宫由一个个方格组成。...输入格式 第一行是一个整数T,代表有几个测试样例 每个测试样例第一行是一个整数N(1一行是一个整数Q,代表有多少次询问,接下来的Q行每行是一个仅由“LRUD”四个字母的组成的字符串,字符转长度小于1000. ...【输出格式】 输出一行,包含一个整数,表示村内所有人路程的开销和。
由于工作需要用到C语言,所以开始接触学习C语言,从最基础开始学习了解。...C语言中的关键字: auto 声明自动变量 break 跳出当前循环 case 开关语句分支 char 声明字符型变量或函数返回值类型 const 声明只读变量 continue...C变量 基本数据类型 char int float double void C常量 常量是固定值,在程序执行期间不会改变 字符常量 \n 换行符 \f 换页符 \r...回车 C存储类 auto register static extern C运算符 算术运算符 + - * / % ++ – 关系运算符 == !...的第一次出现的位置
C语言是众多计算机语言中的一种,其他让人耳熟能详的计算机语言还有C++,Java,Go,Python等。...2.C语言历史来源 (1)C语言发展历史 (2)C语言标准演变 3.学习C语言的开端 3.1编译器的选择(以VS2022为例) C语言是一门编译型计算机语言,C语言源代码是文本文件(文本文件无法直接执行...,固定在一个位置,避免找不到文件位置 (2)创建源文件 然后进行源文件的命名,确认后则成功创建了源文件,可以进行代码的编写操作 注意: 1.在图中箭头2的地方,源文件命名时,C语言的源文件后缀是.c,将....cpp改为.c即可 3.3编写第一个C语言程序 #include int main() { printf("Hello world!...\n"); return 0; } 恭喜你,成功的编写出自己的第一个C语言代码程序!
码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist ⭐MT1001程序设计入门 欢迎来到程序设计的世界,请编写一个简单程序,输出2行字符,第一行为...; return 0; } ⭐MT1002输入和输出整型数据 请编写一个简单程序,用户输入一个整数存储在变量中,并输出在屏幕上。...C++、python和C语言成绩,输出总分和和平均分。...; scanf("%lf %lf %lf", &c_plus, &python, &c); double sum = c_plus + python + c; double ave...%d\n%c %d", character, character, integer, integer); return 0; } ⭐MT1012各种类型长 请编写一个简单程序,输出int、float