TypeCodes

图文实例说MFC制作工具的心得(一)

上篇文章说了用MFC制作一个十六进制字符串异或的工具,这篇文章就以这个工具为演示总结一下自己的学习心得。

MFC十六进制异或工具

1 控制用户输入数据的长度

在给用于用户输入十六进制字符串数据的Edit Control控件添加变量时,可以在“最大字符数”这个选项中填入一个整数,例如这个工具最大字节就限制在500内。这样就会生成如下代码,作用是在数据交互时自动截取前面500个字符。

 1
 2
 3
 4
 5 …

- 阅读剩余部分 -

MFC写了一个十六进制字符串异或的工具

在写完上一篇文章《十六进制字符串异或》后,网上查了下貌似没有十六进制字符串异或的工具,于是想自己用C++写一个。由于之前没弄过MFC,所以周末花了两天时间边学边做,最后效果如下:

MFC十六进制异或的工具初始界面

图一:工具的初始界面

十六进制字符串异或效果

图二:十六进制字符串异或效果

鼠标移至工具的顶部再右键的效果

图三:鼠标移至工具的顶部再右键的效果

点击“关于 HexStrXor(A)”效果”效果" )

图四:点击“关于 HexStrXor …

- 阅读剩余部分 -

十六进制字符串异或

十六进制字符串异或是C/C++工作中经常遇到的情况,因此自己写了一个异或方法。程序中关键的三点:

1 关键点一

弄清十六进制字符串异或的思路:一个十六进制字符其实表示的是一个字节的低4位,但是在ASCII码表中,它是作为一个字符,即占用了1个字节。所以需要先把这个字符转换成对应的十进制数(范围是0~15),这个就是int char2int( char input …

- 阅读剩余部分 -

由学生按某规则依次报数的游戏引发的问题

前段时间Q群里有提问如下,编写程序解决一个学生按规则依次报数的体育游戏问题。编程语言不限,Java, C#, Ruby, C++, Js, Python, Scala, objective-C统统可以,小语种也没问题。

学生按某规则依次报数的游戏

1 问题描述:
你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏。此时有100名学生在上课 …

- 阅读剩余部分 -

理解有符号和无符号的字符数和整数的转换

网上关于有符号、无符号字符转换成有符号、无符号整形数据的问题,自己写了一个测试程序,分析了下,挺有意思的。

1 测试说明

用的是自己的win7 64位系统,处理器当然是Intel的,因此是前文提到的小端模式。默认按32位(总线)处理,即一个整型4个字节,长度共 2^32 …

- 阅读剩余部分 -

C语言字节序的大小端模式

关于字节序的大小端模式,个人认为CSDN上Hackbuteer1作者的这篇文章《大端模式和小端模式》讲解的很清晰。这里MARK一下自己的学习心得:

C程序内存映射模式

1 原文精华
小端模式[Little-Endian]:内存块低地址存放元素的低位(字节),内存块高地址存放元素的高位(字节)
大端模式[Big-Endian]:内存块低地址存放元素的高位(字节),内存块高地址存放元素的低位 …

- 阅读剩余部分 -

C语言将十进制字符串转成十进制整数

通过上一篇文章完成了十六进制字符串转成十进制整数,同理也很容易写出十进制字符串转成十进制整数的函数。考虑到十进制的字符串中可能会出现正负号,即转换后可能出现负整数,同样也增加了对这种情况的处理。例如将十进制的字符串"0621"、"+621"、"6210"、"-1234"转换十进制的整数,即621、621、6210、-1234。下面同样是正向和逆向两种方法的具体代码:

 1
 2 …

- 阅读剩余部分 -

C语言将十六进制字符串转成十进制整数

C/C++处理十六进制文件中的报文内容时,经常会遇到先读取报文头中的长度(例如"E2"、"1F"、"-eE2"等等),再读取报文体中的内容的情况。那么就需要把报文头中表示长度的十六进制字符串转换成十进制的整形数据。

转换方法有两种,一种是正向从字符串低位到高位依次转换,另一种是逆向从字符串高位到低位依次转换。原理都是利用指针变量依次指向十六进制字符串中的单个字符,然后通过ASCII码表转换成对应的整数。考虑到十进制的字符串中可能会出现正负号,即转换后可能出现负整数,所以增加了对这种情况的处理。下面是两种方法的具体代码 …

- 阅读剩余部分 -