如何将一个int变量a的第N位设置为1
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将一个int变量a的第N位设置为1相关的知识,希望对你有一定的参考价值。
参考技术A a|=1<<k;就可以了 参考技术B public static void main(String[] args)
int a = 124365599;
String aNum = String.valueOf(a);
int index = 5;//指定的数字的位置
StringBuilder str = new StringBuilder(aNum);
str.replace(index-1,index, "1");
System.out.println("转换后的str数值为>>>>>>"+str);
int aNew = Integer.parseInt(str.toString());
System.out.println("转换后的int a 数值为>>>>>>"+aNew);
希望能帮到你!
如何将 int16_t Core Data 对象转换为 int 变量(并返回)?
【中文标题】如何将 int16_t Core Data 对象转换为 int 变量(并返回)?【英文标题】:How do I convert an int16_t Core Data object into an int variable (and back)? 【发布时间】:2013-09-27 19:20:11 【问题描述】:这让我发疯了。
我的核心数据模型中有一个名为“cardType”的字段,它被定义为 int16_t。
我希望它保存定义为 int 的 UISegmentedControl.selectedSegmentIndex 的设置。这个特殊的 UISegmentedControl 设置为 4 个段,所以 int16_t 是多余的。
如果我尝试设置
segmentedControl.selectedSegmentIndex = [dataTable cardType];
我收到一个错误“从 'int16_t *' (aka 'short *') 分配给 'NSInteger' (aka 'int') 的整数转换指针不兼容”
为了好玩,我在方法返回前加了一个星号,即。 *[dataTable cardType],但这显然不起作用。我还做了一个 (int *)dataTable.cardType,但这也是一个愚蠢的尝试。编译器喜欢它,但运行时到处乱扔。
我还尝试了一些多步代码,我试图将值移动到一系列 NSNumber 和 NSInteger 操作中,但这些都不起作用。
我刚刚想到的另一个想法是将数据类型转换为 NSString 并使用字符串函数在文本和整数之间进行转换,但这似乎不太优雅。
看起来这应该是一件非常简单的事情,我只是太麻木了,找不到它。
【问题讨论】:
您是否自动生成了dataTable
类?并尝试[[dataTable cardType] integerValue]
是的。对于 IntegerValue,我尝试输入它,但它不会自动键入该方法,这意味着它可能在我实现它的方式中不可用。如果我强制发送消息,我会得到“错误的接收器类型'int16_t *'(又名'short *')”
你为什么有short *
?如果您使用的是 Core Data,它应该是 NSNumber
@property (nonatomic) int16_t *cardType;
你自己明确写的吗?
【参考方案1】:
Core Data 自动为 @property 生成一个指向 int 的指针,而不是普通的 int。
我变了:
@property (nonatomic) int16_t *cardType;
到
@property (nonatomic) int16_t cardType;
现在一切都按照我想要的方式进行。即,
保存分段控件
[dataTable setCardType:[cardTypePicker selectedSegmentIndex]];
设置分段控件
cardTypePicker.selectedSegmentIndex = [dataTable cardType];
我不知道这是否是 Xcode 错误。
【讨论】:
以上是关于如何将一个int变量a的第N位设置为1的主要内容,如果未能解决你的问题,请参考以下文章
如果 Int32.TryParse 无法解析字符串,如何将其输出设置为 null? [复制]
如何测试 3 位总线的第一位是不是设置为 1 - verilog