小编Jus*_*cle的帖子

在iPhone中生成随机值

我用过rand().但即使重新启动应用程序后它也会提供特定值.

我在我的申请中实施了以下内容.

- (void)viewDidLoad {
[super viewDidLoad];
int x,y;

x=random() % 480; y=random() % 300;

lblT.center=CGPointMake(x,y); // my label lblT
}
Run Code Online (Sandbox Code Playgroud)

尝试在您的应用程序中实现,并启动应用程序.重新启动应用程序后,您会发现该标签将具有特定值.

iphone random xcode objective-c

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

二进制补码形式的64位负整数

我正在阅读GNU PDF库的源代码,特别是它们对64位整数的实现.他们将64位整数定义为两个32位整数的结构 - 高阶int是有符号的,低阶int是无符号的.这是头文件中的相关代码:

/*Definition of internal structure of the pdf_i64_t type*/
struct pdf_i64_s
{
  pdf_i32_t   high;
  pdf_u32_t low;
};

typedef struct pdf_i64_s pdf_i64_t;
Run Code Online (Sandbox Code Playgroud)

根据架构手册,负数以二进制补码形式表示.我对此功能有疑问:

[来自pdf-types.c的代码]

void pdf_i64_assign_quick (pdf_i64_t *bignum,
                      const pdf_i32_t value,
                  pdf_status_t *p_status)
{
  ASSIGN_SAFE(p_status, PDF_OK);

  if (bignum != NULL)
    {
      if (value < 0)
        {
          bignum->high = 0xFFFFFFFF;
        }
      else
        {
          bignum->high = 0;
        }
      bignum->low = value;
    }
  else
    {
      ASSIGN_SAFE(p_status, PDF_ERROR);
    }
}
Run Code Online (Sandbox Code Playgroud)

根据我的阅读,要获得数字的二进制补码,您需要反转所有位并将结果加1.但是在上面的函数中,对于值<0,它们只是将高阶位设置为0xFFFFFFFF,而根本不改变低阶位.不应该将'value'的位反转,然后加1?有人可以解释一下吗?

谢谢.

c bit-manipulation bignum

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

typescript - 如何获得对象类实例?

我有一个类classA的对象,它继承自类classB

我的问题是:我怎么知道我的对象是否继承自classB

我试过: 对象instanceof classB

但它不起作用!

当我正在获取任何ts文件的实例时

0x800a138f - Microsoft JScript运行时错误:无法获取属性"prototype"的值:object为null或undefined

var __extends = this.__extends || function (d, b) {
    function __() { this.constructor = d; }
    __.prototype = b.prototype; //exception occurs in this line
    d.prototype = new __();
};
Run Code Online (Sandbox Code Playgroud)

javascript inheritance typescript

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

在使用 Clang 原子的 C 中,我应该如何执行原子预增量?

从这个问题扩展(How to do anatomicincrement and fetch in C?

在 C 中,使用 Clang 编译器,我怎样才能做原子等价的事情

const int v = ++x

据我了解,v = atomic_fetch_add(&x, 1)将返回原始值(即v = x++),这是一个后增量。

如何返回 x 的更新值?

注意:这个问题是关于 C 的,任何带有“use std::atomic<>”的回复都将相应地被否决。

c atomic clang

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

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