Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
uxiang_blog
Java
提交
8d65a170
J
Java
项目概览
uxiang_blog
/
Java
与 Fork 源项目一致
Fork自
inscode / Java
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
Java
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
8d65a170
编写于
6月 04, 2023
作者:
6
64428d3e4c6fa56f8d8a0e92
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Sun Jun 4 14:54:00 UTC 2023 inscode
上级
33683ae7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
24 deletion
+8
-24
target/C.c
target/C.c
+8
-24
未找到文件。
target/C.c
浏览文件 @
8d65a170
void
put_oct
(
unsigned
int
x
,
char
*
buffer
,
int
n
)
{
char
start
=
'0'
;
while
(
x
){
n
--
;
buffer
[
n
]
=
start
+
x
%
8
;
x
>>=
3
;
}
}
void
bin_to_hex
(
const
void
*
data
,
uint32_t
len
,
char
*
out
)
{
static
const
char
*
const
lut
=
"0123456789abcdef"
;
uint32_t
i
;
for
(
i
=
0
;
i
<
len
;
++
i
)
{
uint8_t
c
=
((
uint8_t
*
)
data
)[
i
]
;
out
[
i
*
2
]
=
lut
[
c
>>
4
]
;
out
[
i
*
2
+
1
]
=
lut
[
c
&
15
];
}
void
put_oct
(
unsigned
int
x
,
char
*
buffer
,
int
n
)
{
char
start
=
'0'
;
// 定义一个字符变量 start,值为 '0'
while
(
x
){
// 循环执行,直到 x 为 0
n
--
;
// 将 n 减 1
buffer
[
n
]
=
start
+
x
%
8
;
// 在 buffer 数组的第 n 个位置上存储字符 start 和 x 除以 8 取余数的和
x
>>=
3
;
// 将 x 右移 3 位,即将 x 除以 8
}
}
/**
以上代码是一个C语言函数,函数名为put_oct,传入参数有三个:一个无符号整型数x,一个指向字符数组的指针buffer,一个整型数n。函数的作用是将无符号整数x转换成八进制数后存储在buffer数组中,并且转换后的八进制数占用的长度为n。
具体实现上,代码通过循环将x不断右移3位(即除以8),根据余数得到每一位的八进制数码,将其存储在buffer数组中。循环时,通过n--将n减1来记录当前已经存储了几位八进制数,同时用start变量来记录八进制数的起始字符,即字符'0'。
需要注意的是,函数中缺失了一个运算符,应该将start x % 8改为start + x % 8,将八进制数码转换成对应的字符后再存储在buffer数组中。
*/
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录