C++常用工具函数-1

1、转为16进制

unsigned long temp = 16;

std::cout<< "temp2="<<std::setbase(16)<< temp << std::endl;

2、数组转指针操作

unsigned char W[4*8*15]; // the expanded key

unsigned int * Wb = reinterpret_cast<unsigned int*>(W);

3、字符串转hex

char *Data = "12340987654321"

int DataLen = strlen(Data);

byte * buffer = new byte[DataLen];

for (int i = 0; i < DataLen; i += 2)
{
unsigned int value(0);
sscanf_s(Data + i, "%02X", &value);
buffer[i / 2] = (byte)value;
}

4、hex打印

typedef unsigned char byte;

byte *cBuffer = NULL;

cBuffer = new byte[32];

for (int i = 0; i < 32; i++) {
 std::cout << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(cBuffer[i]) << "";
}

5、dump

ofstream out;
out.open("Tables.dat");

if (out.is_open() == true)

{

DumpCharTable(out,"gf2_8_inv", gf2_8_inv, 256);
out << "\n\n";
DumpCharTable(out,"byte_sub", byte_sub, 256);
out << "\n\n";
DumpCharTable(out,"inv_byte_sub", inv_byte_sub, 256);
out << "\n\n";
DumpLongTable(out,"RCon", Rcon, 60);
out << "\n\n";
DumpLongTable(out,"T0", T0, 256);
out << "\n\n";
DumpLongTable(out,"T1", T1, 256);
out << "\n\n";
DumpLongTable(out,"T2", T2, 256);
out << "\n\n";
DumpLongTable(out,"T3", T3, 256);
out << "\n\n";
DumpLongTable(out,"T4", T4, 256);

out << "\n\n";
DumpLongTable(out, "T5", T5, 256);
out << "\n\n";
DumpLongTable(out, "T6", T6, 256);
out << "\n\n";
DumpLongTable(out, "T7", T7, 256);


out << "\n\n";
DumpLongTable(out,"I0", I0, 256);
out << "\n\n";
DumpLongTable(out,"I1", I1, 256);
out << "\n\n";
DumpLongTable(out,"I2", I2, 256);
out << "\n\n";
DumpLongTable(out,"I3", I3, 256);
out << "\n\n";
DumpLongTable(out,"I4", I4, 256);

out << "\n\n";
DumpLongTable(out, "I5", I5, 256);
out << "\n\n";
DumpLongTable(out, "I6", I6, 256);
out << "\n\n";
DumpLongTable(out, "I7", I7, 256);

out.close();

}

void DumpCharTable(ostream & out, const char * name, const unsigned char * table, int length){ // dump the contents of a table to a fileint pos;out << name << endl << hex;for (pos = 0; pos < length; pos++){out << "0x";if (table[pos] < 16)out << '0';out << static_cast<unsigned int>(table[pos]) << ',';if ((pos %16) == 15)out << endl;}out << dec;} // DumpCharTablevoid DumpLongTable(ostream & out, const char * name, const unsigned long * table, int length){ // dump te contents of a table to a fileint pos;out << name << endl << hex;for (pos = 0; pos < length; pos++){out << "0x";if (table[pos] < 16)out << '0';if (table[pos] < 16*16)out << '0';if (table[pos] < 16*16*16)out << '0';if (table[pos] < 16*16*16*16)out << '0';if (table[pos] < 16*16*16*16*16)out << '0';if (table[pos] < 16*16*16*16*16*16)out << '0';if (table[pos] < 16*16*16*16*16*16*16)out << '0';out << static_cast<unsigned int>(table[pos]) << ',';if ((pos % 8) == 7)out << endl;}out << dec;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/590888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT的信号与槽

QT的信号与槽 文章目录 QT的信号与槽前言一、QT 打印"hello QT"的dome二、信号和槽机制&#xff1f;二、信号与槽的用法1、QT5的方式1. 无参的信号与槽的dome2.带参的信号与槽dome 2、QT4的方式3、C11的语法 Lambda表达式1、函数对象参数2、操作符重载函数参数3、可修…

LAYABOX:2024新年寄语

2024新年寄语 过去的一年&#xff0c;尽管许多行业面临严峻挑战和发展压力&#xff0c;小游戏领域却逆势上扬&#xff0c;年产值首次突破400亿元大关&#xff0c;众多优质小游戏企业收获颇丰。 对此&#xff0c;祝福大家&#xff0c;2024一定更好&#xff01; 过去的一年&#…

伺服电机的控制模式

一、伺服电机基本的控制模式 伺服电机的基本控制模式有位置模式、速度模式、转矩模式 二、位置模式 位置模式对速度和位置都有严格的控制&#xff0c;通过控制发送脉冲的频率&#xff0c;来确定电机的转动杆速度大小&#xff0c;通过控制发送脉冲的个数来确定转动的角度。位置…

CMake入门教程【基础篇】CMake编译平台

文章目录 简介Visual Studio支持示例 其他编译器和生成器支持MinGW示例 IDE集成Eclipse示例 实验性和特殊平台支持总结 简介 CMake是一个非常强大的跨平台自动化构建工具&#xff0c;它支持生成多种类型的项目文件&#xff0c;覆盖了广泛的开发环境和编译器。在这篇博客中&…

33--反射

1、反射(Reflection)的概念 1.1 反射的出现背景 Java程序中&#xff0c;所有的对象都有两种类型&#xff1a;编译时类型和运行时类型&#xff0c;而很多时候对象的编译时类型和运行时类型不一致。 Object obj new String("hello"); obj.getClass(); 例如&#xf…

【话题】ChatGPT等大语言模型为什么没有智能2

我们接着上一次的讨论&#xff0c;继续探索大模型的存在的问题。正巧CSDN最近在搞文章活动&#xff0c;我们来看看大模型“幻觉”。当然&#xff0c;本文可能有很多我自己的“幻觉”&#xff0c;欢迎批评指正。如果这么说的话&#xff0c;其实很容易得出一个小结论——大模型如…

DS1302N的时钟逻辑

时钟也是一个实时的串口&#xff0c;也是很简单的&#xff0c;不过要注意以下的要点&#xff1a; 要点&#xff1a; &#xff08;1&#xff09;里面有很多数据&#xff0c;所以需要定义一个结构体变量&#xff0c;将其中的数据写进去。 &#xff08;2&#xff09;写进去的数…

.Net Core 防御XSS攻击

网络安全攻击方式有很多种&#xff0c;其中包括XSS攻击、SQL注入攻击、URL篡改等。那么XSS攻击到底是什么?XSS攻击有哪几种类型? XSS攻击又称为跨站脚本&#xff0c;XSS的重点不在于跨站点&#xff0c;而是在于脚本的执行。XSS是一种经常出现在Web应用程序中的计算机安全漏洞…

算法基础之计数问题

计数问题 核心思想&#xff1a; 数位dp / 累加 累加 ​ 分情况讨论 &#xff1a; xxx 000 ~ abc –1 yyy 000 ~ 999 共 abc * 1000 种 特别地&#xff0c;当枚举数字0时 (找第4位为0的数) 前三位不能从000开始了 否则没这个数不合法(有前导零) xxx abc 2.1. d < 1 , 不…

UnityShader(四)一个最简单的顶点/片元着色器

目录 顶点/片元着色器的基本结构&#xff1a; 简单的例子 增加模型数据 顶点着色器和片元着色器之间的通信 顶点/片元着色器的基本结构&#xff1a; Shader "MyShaderName"{Properties{//属性}SubShader{//针对显卡A的SubShaderPass{//设置渲染状态和标签//开始C…

C++正则表达式全攻略:从基础到高级应用

C正则表达式全攻略&#xff1a;从基础到高级应用 一、基础知识二、正则表达式的基本匹配三、C中使用正则表达式四、高级正则表达式五、实践示例六、性能优化6.1、编译正则表达式6.2、避免过度使用回溯6.3、优化匹配算法 七、总结 一、基础知识 正则表达式是一种用于匹配、搜索…

voronoi diagram

voronoi diagram Generalized voronoi diagram GVD Boris Lau - dynamicvoronoi 重要三篇论文链接 dynamic voronoi ros github dynamic voronoi 论文解读 - silver bullet - 慢悠悠的小马车 Voronoi-Based-Hybrid-Astar &#xff08;重要&#xff09; 重要论文 Local a…

ORACLE Primavera P6, Unifier v23.12 系统分享

引言 根据上周的计划&#xff0c;我近日简单制作了一个基于ORACLE Primavera P6 EPPM 以及Unifier 最新版23.12的虚拟机演示环境&#xff0c;里面包括了p6 和 unifier的全套系统服务 此虚拟系统环境仅用于演示、培训和测试目的。如要在生产环境中使用此虚拟机&#xff0c;请您…

设计模式在Java开发中的应用

设计模式在Java开发中起着至关重要的作用。它们是一些被广泛接受的、经过验证有效的解决问题的方法。设计模式可以帮助开发人员构建可维护、可扩展和易于理解的代码。在本文中&#xff0c;我将介绍一些在Java开发中常用的设计模式&#xff0c;并解释它们的应用场景和优点。 单例…

系列二、RestTemplate简介

一、RestTemplate简介 1.1、概述 RestTemplate是一种便捷的访问RestFul服务的模板类&#xff0c;是Spring提供的用于访问Rest服务的客户端模板工具集&#xff0c;它提供了多种便捷访问远程HTTP服务的方法。 1.2、API https://docs.spring.io/spring-framework/docs/5.2.2.REL…

mysqldump导出函数、存储过程和视图

mysqldump导出函数、存储过程和视图 导出函数和存储过程导出视图定义 导出函数和存储过程 查看函数和存储过程&#xff1a; select routine_schema,routine_name,routine_type from information_schema.routines where routine_schemaDBNAME and routine_type in (FUNCTIO…

从马尔可夫奖励过程到马尔可夫决策到强化学习【02/2】

一、说明 随着 Open AI 于 2023 年 11 月 6 日发布GPT 代理&#xff0c;我们所有人都对它带来的支持和灵活性着迷。想象一下&#xff0c;有一个个性化的数字助手始终在您身边&#xff0c;根据您的喜好完成日常平凡任务或艰巨任务。但为这些定制代理提供动力的是强化学习&#x…

【C语言】Windows上用GTK写GUI程序

要使用GTK开发一个Windows图形用户界面程序&#xff0c;需要首先设置GTK开发环境。这通常包括安装GTK库和它的依赖&#xff0c;以及配置编译器和工具链。可以选择使用纯C语言和GTK库或者使用支持GTK绑定的其他语言&#xff0c;如Python、C或Rust。 1. 安装GTK开发库 在Window…

Linux apt 命令

apt&#xff08;Advanced Packaging Tool&#xff09;是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。 apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令&#xff0c;而且命令简洁而又好记。 apt 命令执行需要超级管理员权限(root)。 apt 语…

Prototype原型模式(创建对象)

原型模式&#xff1a;Prototype 链接&#xff1a;原型模式实例代码 注解 模式定义 使用原型实例指定创建对象的种类&#xff0c;然后通过拷贝这些原型来创建新的对象。 ——《设计模式》GoF 目的 在软件系统中&#xff0c;经常面临这“某些结构复杂的对象”的创建工作&am…