oc中调用c函数 实现将字符串转换成unsigned char
帮助码友解决问题,从而复习了一下oc中调用c函数的方式
1,新建c 头文件 test.h
定义 c 函数
#ifndef test_h
#define test_h void verification(unsigned char INPUT[], unsigned int OUTPUT[]); #endif /* test_h */
2,新建 c 实现文件,新建模板选中 c File test.c
3.实现函数
//
// test.c #include <stdio.h>
#include "test.h"
#define N 10 void verification(unsigned char INPUT[], unsigned int OUTPUT[]) {
//第一步
unsigned char *A = INPUT;
//第二步
unsigned int S[N] = {0};
for(int i = 0; i < N; ++i) {
S[i] = A[i]*A[i];
}
//第三步
unsigned int P[N] = {0};
for(int i = 0; i < N; ++i) {
P[i] = S[i] * (6+i);
}
//第四步
int E = 0;
for(int i = 0; i <= 6; ++i) {
E += P[i];
} OUTPUT[0] = (unsigned int)E&0XFFFF;
OUTPUT[1] = P[7]&0XFFFF;
OUTPUT[2] = P[8]&0XFFFF;
OUTPUT[3] = P[9]&0XFFFF;
}
4,oc 中调用,引用 c 头文件 test.h
#import "ViewController.h"
#import "test.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; [self verificationWithNumber:@"M201476052"];
} -(NSString *)verificationWithNumber:(NSString *)Number{ unsigned char css[10]; memcpy(css, [Number cStringUsingEncoding:NSASCIIStringEncoding], [Number length]); unsigned int OUTPUT[4]; verification(css,OUTPUT); NSMutableArray *ary = [NSMutableArray array]; for(int i = 0; i< 4; ++i) { [ary addObject:[NSString stringWithFormat:@"%04X", OUTPUT[i]]];
} NSString *str = [ary componentsJoinedByString:@"-"]; NSLog(@"str = %@", str); return str;
} @end
oc中调用c函数 实现将字符串转换成unsigned char的更多相关文章
- C语言atoi()函数:将字符串转换成int(整数)
头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为:int atoi (const char * str); [函数说明]atoi ...
- Python使用函数实现把字符串转换成整数
需求:假设Python没有提供内置函数int如果使用函数方式实现把一串字符串转换成整数例如把字符串‘12345‘转换成整数12345 思路 1,字符串也是序列可以使用map函数处理分割成一个列表 2, ...
- C#中服务端接受前端JSON字符串转换成字典集合
我们是否可以把从前端接受的JSON字符串转换成字典集合呢? 比如从前端接收:{'size':'10', 'weight':'10kg'} 在服务端转换成:[{size:"10"}, ...
- json中把非json格式的字符串转换成json对象再转换成json字符串
JSON.toJson(str).toString()假如key和value都是整数的时候,先转换成jsonObject对象,再转换成json字符串
- js字符串转换成数字与数字转换成字符串的实现方法
转载:点击查看地址 js字符串转换成数字 将字符串转换成数字,得用到parseInt函数.parseInt(string) : 函数从string的开始解析,返回一个整数. 举例:parseInt(' ...
- js字符串转换成数字,数字转换成字符串
转自网络,忘记出处了. js字符串转换成数字 将字符串转换成数字,得用到parseInt函数. parseInt(string) : 函数从string的开始解析,返回一个整数. 举例:parseIn ...
- 在lldb调试中调用c++函数
在lldb调试时,调用oc对象的方法不足为奇,因为msgSend是有原型导出的,oc对象的方法都运行期绑定的,绑定信息都在objc_class中.只要在调试中[receiver sel]之类,lldb ...
- EC笔记,第二部分:9.不在构造、析构函数中调用虚函数
9.不在构造.析构函数中调用虚函数 1.在构造函数和析构函数中调用虚函数会产生什么结果呢? #; } 上述程序会产生什么样的输出呢? 你一定会以为会输出: cls2 make cls2 delete ...
- 关于在C#中构造函数中调用虚函数的问题
在C#中如果存在类的继承关系,应避免在构造函数中调用虚函数.这是由于C#的运行机制造成的,原因如下: 新建一个类实例时,C#会先初始化该类(对类变量赋值,并将函数记在函数表中),然后再初始化父类.构造 ...
随机推荐
- 关于Arrays类的静态方法asList()
Array.asList():是数组转成集合的方法 List<String> list = Arrays.asList(new String[]{"AA", " ...
- QuantumTunnel:Netty实现
接上一篇文章内网穿透服务设计挖的坑,本篇来聊一下内网穿透的实现. 为了方便理解,我们先统一定义使用到的名词: UserClient:用户客户端,真实的请求发起方: UserServer:内网穿透-用户 ...
- Win10-更改c盘下的用户文件夹名
如果你是win10家庭版,请先升级成专业版 win10家庭版升级到win10专业版 修改用户名称
- JDBC操作多张表一
一.操作一对多情况开发步骤1创建对象 //代码部门的对象public class Department { private String id; private String name; privat ...
- react之路由
功能:让用户从一个视图(组件)导航到另一个视图(组件) 前端路由是一套映射规则,在React中,是URL路径与组件的对应关系 使用React路由简单来说,就是配置路径和组件 路由的使用 1.安装路由 ...
- [atARC128F]Game against Robot
为了方便,下文中的$n$是原来的$\frac{n}{2}$ 当确定排列$\{p_{i}\}$后,将$a_{i}$按照$p_{i}$从大到小排序,那么机器人即会不断选第一个元素 考虑玩家最后选择的$n$ ...
- [atARC116F]Deque Game
假设两个操作者分别为$A$和$B$,其中$A$希望最大.$B$希望最小 (并不默认$A$为整局游戏的先手,仅是最终的结果考虑$A$为先手时) 记第$i$个队列第$j$个元素为$a_{i,j}$(其中$ ...
- [bzoj1089]严格n元树
设f[i]表示深度不超过i的方案数,那么有f[0]=1,$f[i]=f[i-1]^{n}+1$,然后用高精度即可(注意深度恰好为d还要用f[d]-f[d-1]才是答案) 1 #include<b ...
- Java设计模式之(七)——装饰器模式
1.什么是装饰器模式? Attach additional responsibilities to an object dynamically keeping the same interface.D ...
- Error occurred during initialization of VM Could not reserve enough space fo
通过es的elasticsearch.bat 启动.发现错误:Error occurred during initialization of VM Could not reserve enough s ...