gpt4 book ai didi

c++ - unsigned char 类型的负数

转载 作者:太空狗 更新时间:2023-10-29 20:55:30 27 4
gpt4 key购买 nike

我正在从头开始实现 2D 相关代码,我有一个简单的 unsigned char 类型的 3x3 图像矩阵:

 unsigned char Image = [184   0   35
48 107 193
29 166 32]

我的相关内核

             Kernel = [-1 0 1]  

现在,当我执行相关时,第一行的结果在数学上是 -149,但打印结果是 107(2 的补码)。

unsigned char res = -1.F *(Kernel[i-1]) + (Kernel[i+1]); 

这不是一个错误吗?如何将结果保存为 -149 但类型仍为 unsigned char?我知道我的问题可能不合适,因为 unsigned char 的范围是 0 到 255,但我想确定我是否遗漏了什么。我也知道负数被转换为 2 的补码。
顺便说一句,这不是任何作业,我只是从图像处理的角度研究 C/C++。

最佳答案

How can I save the result as -149 but the type still remains as unsigned char?

不要这样做。使用带符号的整数类型。

如果增加的内存使用量不是问题,请使用 int
如果失败,请使用 short

关于c++ - unsigned char 类型的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35589971/

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