C#:将0xFFFFFFFF分配给int [英] C#: assign 0xFFFFFFFF to int

查看:79
本文介绍了C#:将0xFFFFFFFF分配给int的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用十六进制数字为int赋值:

I want to use HEX number to assign a value to an int:

int i = 0xFFFFFFFF; // effectively, set i to -1

可以理解,编译器抱怨.问题,我该如何进行上述工作?

Understandably, compiler complains. Question, how do I make above work?

这就是为什么我需要这个. WritableBitmap 类将像素数组公开为int [].因此,如果我要将像素设置为蓝色,我会说:0xFF0000FF(ARGB)(-16776961)

Here is why I need this. WritableBitmap class exposes pixels array as int[]. So if I want to set pixel to Blue, I would say: 0xFF0000FF (ARGB) (-16776961)

另外,我很好奇是否有一个优雅的编译时解决方案.

Plus I am curious if there is an elegant, compile time solution.

我知道有一个:

int i = BitConverter.ToInt32(new byte[] { 0xFF, 0x00, 0x00, 0xFF }, 0);

但这既不是优雅的,也不是编译时间.

but it is neither elegant, nor compile time.

推荐答案

您只需要一个

You just need an unchecked cast:

unchecked
{
    int i =  (int)0xFFFFFFFF;

    Console.WriteLine("here it is: {0}", i);
}

这篇关于C#:将0xFFFFFFFF分配给int的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆