如何转换为十六进制啊?
时间:2010-12-06
来源:互联网
--------------------------------------------------------------------------------
大家好
我有一个数组,char* v6addr[16]={20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01};
现在我想把这个数组的值赋给另外一个16进制的数组,也就是IPv6的地址。
IPv6的地址格式为 struct in6_addr.s6_addr[16].而这个数组里面的值是十六进制,所以我用这个表达式赋值 in6_addr.s6_addr[i]=v6addr[i],可是赋值后,左边的结果都不是我要的值,可能是字符赋给十六进制的值的时候出问题了。
有没有办法,可以实现让in6_addr.s6_addr[16]里面的值是={20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01}啊,怎样才能直接让这些值被强行转换为十六进制,并且值的样式不会变化啊?帮帮忙
大家好
我有一个数组,char* v6addr[16]={20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01};
现在我想把这个数组的值赋给另外一个16进制的数组,也就是IPv6的地址。
IPv6的地址格式为 struct in6_addr.s6_addr[16].而这个数组里面的值是十六进制,所以我用这个表达式赋值 in6_addr.s6_addr[i]=v6addr[i],可是赋值后,左边的结果都不是我要的值,可能是字符赋给十六进制的值的时候出问题了。
有没有办法,可以实现让in6_addr.s6_addr[16]里面的值是={20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01}啊,怎样才能直接让这些值被强行转换为十六进制,并且值的样式不会变化啊?帮帮忙
作者: wuwenhua 发布时间: 2010-12-06
你这个数组char* v6addr[16]是个指针数组,所以,存放里面的值的数值也得是指针数组,这点要注意。
至于转换成16进制,我的思路是将十进制数除以16,记录商不为0的次数和商为0时的余数将次数相加,转成16进制,最后加上余数。
是个笨方法,呵呵。
至于转换成16进制,我的思路是将十进制数除以16,记录商不为0的次数和商为0时的余数将次数相加,转成16进制,最后加上余数。
是个笨方法,呵呵。

作者: shaohui973 发布时间: 2010-12-06
char v6addr[16]=....;
memcpy(in6_addr.s6_addr,v6addr,16);
memcpy(in6_addr.s6_addr,v6addr,16);

作者: 流氓无产者 发布时间: 2010-12-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28