标签: uint

保持数字等于或大于零的最佳方法是什么

我想要实现的是确保我的属性始终为 0 或更大。类型并不重要。

可以说:

var x = 3;
var y = 5;
Run Code Online (Sandbox Code Playgroud)

x之后x -= y应该是 0。

目前正在使用这种方式,并且想知道是否有一种没有成员变量的方法:

public int Coins
{
  get { return Math.Max(0, _coins); }
  set { _coins = value; }
}

Run Code Online (Sandbox Code Playgroud)

也无法找到 uint 的方法。

所有建议均表示赞赏。

uint x = 3;
uint y = 5;
Run Code Online (Sandbox Code Playgroud)

预期 x 之后为 0 x -= y,但收到最大单位。

c# zero uint

1
推荐指数
1
解决办法
204
查看次数

Flash AS3:如何在使用整数数据类型时返回NaN或undefined?

我正在开发一个函数,它在Flash AS3中获取舞台鼠标坐标,并在光标下方的十六进制网格中返回tile.我希望函数返回NaN或未定义如果光标不在tile上,如果是,则是对象数组中该tile的整数索引.

    public function getCursorTile(mX:Number,mY:Number):uint
    {
        var tileIndex:uint = new uint(NaN);
        trace(tileIndex);
        for (i=0; i<tileArray.length; i++)
        {
            if (tileArray[i].hitTestPoint(mX,mY,true))
            {
                tileArray[i].tileBorder.gotoAndStop(1);
                tileIndex = i;
            }
        }
        return tileIndex;
    }
Run Code Online (Sandbox Code Playgroud)

我一直在使用uint来处理大多数整数变量,也许这种数据类型不支持NaN或undefined?在定义tileIndex之后,此代码跟踪0.我正在使用hitTest,因为hexgrid不是正方形并且是随机生成的.Tile 0是第一个tile,当光标关闭时返回0,hex-map将导致问题.

types undefined actionscript-3 uint

0
推荐指数
1
解决办法
1874
查看次数

发出写入/读取uint到二进制文件的问题

我正在用C语言写一个二进制文件的结构.char*项和uint8项写得很好,但我似乎在编写uint32项时遇到问题.

我的写作代码在这里.

void writeOut(record *data){

FILE *fp = fopen("output.bin","w");

int i =0;

    while(data[i].Name != NULL){
        fwrite(data[i].Name, NAME_LEN ,1,fp);   
        fwrite(&data[i].Value1, sizeof(uint8_t) ,1,fp);
        fwrite(&data[i].Value2, sizeof(uint8_t) ,1,fp);
        fwrite(&data[i].Id, sizeof(uint32_t) ,1,fp);
        fwrite(data[i].Text, TEXT_LEN ,1,fp);   
        i++;
    }   
}
Run Code Online (Sandbox Code Playgroud)

我的二进制文件对于记录1(十六进制)看起来像这样(用'|'用于显示字段结尾指向): 52 6F 64 27 72 6F 64 00 00 00 00 00 00 00 00 00 00 | 01 | 04 | 72 92 01 00 | 50 72 6F 6A 65 63 74 20 50 65 61 63 65 00 00 00 00 00 00 …

c binaryfiles uint

0
推荐指数
1
解决办法
1125
查看次数

将八进制/十六进制声明的INT/UINT分配给另一个变量

我的WIN32(C++)代码有一个UINT让我们调用它号码.此UINT(或INT无关紧要)的值以0开头,并被识别为八进制值.可以使用标准运算符,值将保持八进制.十六进制也是可能的(前面的0x).问题是我有利用价值在缓冲区与它来计算不改变的值.我可以在声明行上为缓冲区分配一个类似07777的值,但如果使用像buffer = number这样的操作,缓冲区中的值将在十进制基数上识别.

有人为我解决了吗?

c++ int winapi octal uint

0
推荐指数
1
解决办法
627
查看次数

将十六进制颜色作为字符串转换为 Uint

我一直在寻找这个,但找不到有效或我理解的解决方案。

我在数据库“0x6c8c93”中有一个字符串,我想将其转换为 Uint,以便将其转换为颜色。

下面是我以前用来将 Uint 转换为颜色的函数。我刚刚将颜色图表中的十六进制值以这种格式 0x6c8c93 传递给它。但是现在我需要从数据库中提取一些值,所以我必须使用字符串。

class func UIColorFromHEX(hexValue: UInt) -> UIColor {
    return UIColor(
        red: CGFloat((hexValue & 0xFF0000) >> 16) / 255.0,
        green: CGFloat((hexValue & 0x00FF00) >> 8) / 255.0,
        blue: CGFloat(hexValue & 0x0000FF) / 255.0,
        alpha: CGFloat(1.0)
    )
}
Run Code Online (Sandbox Code Playgroud)

感谢帮助。

hex uicolor uint swift

0
推荐指数
1
解决办法
2336
查看次数

如何正确地将 uint8* 复制到 vector&lt;Uint8&gt;

我正在尝试从 Uint8* 制作 Uint8 向量,但由于某些原因某些值不相同。这是我的代码。

std::vector<Uint8> wav_vector = {}; 
Uint8* wav_buffer_;   
for (unsigned int i = 0; i < wav_length_; i++) {
  wav_vector.push_back(wav_buffer_[i]);
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试验证这些值:

for (unsigned int i = 0; i < wav_length_; i++){
    if (wav_buffer_[i]!=wav_vector[i]){
      cout<<i<<endl;
      printf("Orignal Buffer %u\n", wav_buffer_[i]);
      printf("Vector Buffer %u\n", wav_vector[i]);

    }
  }
Run Code Online (Sandbox Code Playgroud)

这些是我的示例输出:

Index: 0
Orignal Buffer 208
Vector Buffer 40

Index: 1
Orignal Buffer 72
Vector Buffer 3

Index: 2
Orignal Buffer 111
Vector Buffer 183

Index: 3
Orignal Buffer 1
Vector Buffer …
Run Code Online (Sandbox Code Playgroud)

c++ sdl wav uint uint8t

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

uint(-5.0),其中参数是 float64,= 18446744073709551611?

在 Go 之旅的第 13 步中,我对脚本做了一些更改

package main

import (
    "fmt"
    "math"
)

func main() {
    var x, y int = 3, 4
    var f float64 = math.Sqrt(float64(x*x + y*y))
    var z uint  = uint(f)
    fmt.Println(x, y, z, f)
}
Run Code Online (Sandbox Code Playgroud)

返回:3 4 5 5,很好。

但是当我做这个改变时:否定f

func main() {
    var x, y int = 3, 4
    var f float64 = - math.Sqrt(float64(x*x + y*y))
    var z uint  = uint(f)
    fmt.Println(x, y, z, f)
}
Run Code Online (Sandbox Code Playgroud)

它响应:3 4 18446744073709551611 -5

为什么-5.0 …

floating-point type-conversion go uint

-3
推荐指数
1
解决办法
107
查看次数

标签 统计

uint ×7

c++ ×2

actionscript-3 ×1

binaryfiles ×1

c ×1

c# ×1

floating-point ×1

go ×1

hex ×1

int ×1

octal ×1

sdl ×1

swift ×1

type-conversion ×1

types ×1

uicolor ×1

uint8t ×1

undefined ×1

wav ×1

winapi ×1

zero ×1