小编Nat*_*lie的帖子

C++如何将两个带符号的8位数组合成16位短数?无法解释的结果

我需要将两个带符号的8位_int8值组合成一个有符号的短(16位)值.重要的是标志不会丢失.

我的代码是:

 unsigned short lsb = -13;
 unsigned short msb = 1;
 short combined = (msb << 8 )| lsb;
Run Code Online (Sandbox Code Playgroud)

我得到的结果是-13.但是,我预计它会是499.

对于以下示例,我使用相同的代码获得正确的结果:

msb = -1; lsb = -6; 合并= -6;

msb = 1; lsb = 89; 合计= 345;

msb = -1; lsb = 13; 合计= -243;

但是,msb = 1; lsb = -84; 合并= -84; 在哪里我期待428.

似乎如果lsb为负且msb为正,则出现问题!我的代码出了什么问题?计算机如何得到这些意外结果(Win7,64位和VS2008 C++)?非常感谢您的帮助!

c++ signed byte short

11
推荐指数
2
解决办法
4万
查看次数

WPF,C#:在图像控件中的现有位图上画一条线

我在图像控件中有一个位图图像

每次我用鼠标点击位图时,我都需要在位图上画一条红线,在我点击鼠标的地方。

我首先想到创建一个 Line 对象,但发现我无法添加 Line。我需要一张画布。但是如果我把我的图像放在画布上,我的位图不会延伸到整个画布上(我发现,位图的坐标决定了画布上的位置,所以我的位图显示错误。)

然后我尝试使用图形

Graphics graphics = Graphics.FromImage(bitmapImg);
graphics.DrawLine(new System.Drawing.Pen(System.Drawing.Color.Red), 0, 0,  bitmapImg.Width, bitmapImg.Height); //not the line yet, just for testing
    graphics.DrawImage(bitmapImg, 0, 0, bitmapImg.Width,bitmapImg.Height);
        graphics.Dispose();
Run Code Online (Sandbox Code Playgroud)

但是,我的位图上没有绘制任何东西......

现在我想,我可能必须将位图放入一个数组中,然后更改像素颜色以获取位图中的线条。我相信,这会很慢。

我现在正在尝试使用visualDrawing,但是,我还没有让它工作:-(

在 WPF C# 中将一条线放到现有位图上的好方法是什么????以及如何删除它?

我很乐意提供任何帮助!谢谢!我已经在 MS 论坛页面上发布了它,但到目前为止还没有答案。

wpf drawing bitmap

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

bitmap ×1

byte ×1

c++ ×1

drawing ×1

short ×1

signed ×1

wpf ×1