C中将字符串转uint8

prprrrr 2021-03-12 11:29:54
初学C不是很懂 目前有一个字符串型的uint8,怎么把它转成uint8数呢?
...全文
2217 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-03
  • 打赏
  • 举报
回复
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
真相重于对错 2021-03-12
  • 打赏
  • 举报
回复
uint8_t n;
    const  char* str = "0xff";
    sscanf(str, "%hhx", &n);
自信男孩 2021-03-12
  • 打赏
  • 举报
回复
不用转,因为char和uint8都是1个字节的长度。如果说要转的话,可能是类型强制转换了,但是这样不会改变内存里的内容。
prprrrr 2021-03-12
  • 打赏
  • 举报
回复
比如说 char *a ="0xff" 怎么转成uint8_t类型?
forever74 2021-03-12
  • 打赏
  • 举报
回复
请上代码来说明问题。
自信男孩 2021-03-12
  • 打赏
  • 举报
回复
引用 10 楼 prprrrr 的回复:
[quote=引用 9 楼 自信男孩的回复:][quote=引用 2 楼 prprrrr 的回复:]比如说
char *a ="0xff"
怎么转成uint8_t类型?

当然char *a = "0xff";和uint8_t *b = "0xff";是一样的。

同理char a[] = "0xff"和uint8_t b[] = "0xff";内存是一样的(即数组a和数组b中的内容是一样的)[/quote]
相当于写了一个uint8的指针指向了"0xff"吗[/quote]
forever74 2021-03-12
  • 打赏
  • 举报
回复
所以说不上代码的话,楼主你的原始说法容易造成误解哦。
prprrrr 2021-03-12
  • 打赏
  • 举报
回复
引用 7 楼 prprrrr的回复:
[quote=引用 4 楼 真相重于对错的回复:]
uint8_t n;
    const  char* str = "0xff";
    sscanf(str, "%hhx", &n);
我这就去试试[/quote] 太好了可以,谢谢
prprrrr 2021-03-12
  • 打赏
  • 举报
回复
引用 9 楼 自信男孩的回复:
[quote=引用 2 楼 prprrrr 的回复:]比如说
char *a ="0xff"
怎么转成uint8_t类型?

当然char *a = "0xff";和uint8_t *b = "0xff";是一样的。

同理char a[] = "0xff"和uint8_t b[] = "0xff";内存是一样的(即数组a和数组b中的内容是一样的)[/quote] 相当于写了一个uint8的指针指向了"0xff"吗
自信男孩 2021-03-12
  • 打赏
  • 举报
回复
引用 2 楼 prprrrr 的回复:
比如说
char *a ="0xff"
怎么转成uint8_t类型?

当然char *a = "0xff";和uint8_t *b = "0xff";是一样的。

同理char a[] = "0xff"和uint8_t b[] = "0xff";内存是一样的(即数组a和数组b中的内容是一样的)
自信男孩 2021-03-12
  • 打赏
  • 举报
回复
引用 2 楼 prprrrr 的回复:
比如说
char *a ="0xff"
怎么转成uint8_t类型?


这不一样呢,a是指向的字符串,0xff和"0xff"是不一样的。

我说的一样是这样的:char a = 0xff; uint8_t b = a;或者uint8_t b = 0xff;此时的a和b是一样的在内存里。
prprrrr 2021-03-12
  • 打赏
  • 举报
回复
引用 4 楼 真相重于对错的回复:
uint8_t n;
    const  char* str = "0xff";
    sscanf(str, "%hhx", &n);
我这就去试试
prprrrr 2021-03-12
  • 打赏
  • 举报
回复
引用 3 楼 自信男孩的回复:
不用转,因为char和uint8都是1个字节的长度。如果说要转的话,可能是类型强制转换了,但是这样不会改变内存里的内容。
噢,那就直接强转就可以了吧
赵4老师 2021-03-12
  • 打赏
  • 举报
回复
电脑内存或文件内容或传输内容只是一个一维二进制字节数组及其对应的二进制地址; 人脑才将电脑内存或文件内容或传输内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息…… 推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。

70,021

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧