gpt4 book ai didi

c - 在c中写入一个2位int,仅包含

转载 作者:行者123 更新时间:2023-11-30 19:01:30 25 4
gpt4 key购买 nike

假设我无法访问任何 C 标准库,我尝试使用 write(x, x, x) 函数打印 2 位整数。我只包含 <unistd.h>根据规范。我当前的函数仅提供传递给它的值的 ASCII 表示形式。

void my_print(int x)
{
write(1, &x, 2);
}

最佳答案

使用 mod % 和 div 获取高位和低位数字

int low = x%10;
int high = x/10; // could also have a sanity check for the range here

然后通过添加'0'0x30将其转换为ascii并写入

putchar(high+'0'); // Let compiler transform to char 
putchar(low+0x30); // Or this if you trust magic constants more

从这里可以很容易地将代码转换为使用 write 函数

#include <unistd.h>

void myprint(int x){
char buf[]= {'0'+(x/10)%10, '0'+x%10};
write(1,buf,2);
}

关于c - 在c中写入一个2位int,仅包含<unistd.h>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57703754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com