考虑以下代码:
public class ShortDivision {
public static void main(String[] args) {
short i = 2;
short j = 1;
short k = i/j;
}
}
Run Code Online (Sandbox Code Playgroud)
编译它会产生错误
ShortDivision.java:5: possible loss of precision
found : int
required: short
short k = i/j;
Run Code Online (Sandbox Code Playgroud)
因为表达式i/j的类型显然是int,因此必须强制转换为short.
为什么类型i/j不短?
我有一个代码片段,我想在应用程序关闭时运行.所以,我用FormCLosing事件.但现在我想发出一条退出确认信息.例如,如果用户单击"退出"(X)按钮,则会出现提示,如果他单击"否",则应用程序将不会关闭并恢复到之前的状态.
现在我发现使用FormClosing事件很难实现.因为无论用户点击什么按钮,它都会被执行.对此有任何补救措施吗?
我的意思是,我需要一个像ExitButtonPressed()...
当我在我的c ++程序中使用mtrace时,我得到如下输出
Address Size Caller
0x0804a3c8 0x4 at 0x400b159f
Run Code Online (Sandbox Code Playgroud)
我如何知道代码中的哪个位置是0x400b159f?
我想知道如何通过php的unpack函数读取结构中的结构.当我得到一个IS_MCI数据包时,我检查它的类型以确保它等于ISP_MCI,然后检查NumC以找出该数据包中有多少个CompCar结构.问题是尝试通过单个函数将这些内容解压缩到一个数组中.我总是得到一个未定义的偏移量.所以,我正在寻找一些新的眼睛.
你会如何处理这个数据包?
有问题的结构是这样的:
struct IS_MCI // Multi Car Info - if more than 8 in race then more than one of these is sent
{
byte Size; // 4 + NumC * 28
byte Type; // ISP_MCI
byte ReqI; // 0 unless this is a reply to an TINY_MCI request
byte NumC; // number of valid CompCar structs in this packet
CompCar Info[8]; // car info for each player, 1 to 8 of these (NumC)
};
struct CompCar …Run Code Online (Sandbox Code Playgroud) 我正在使用Eclipse + ADT,我的物理设备(如下所列)在Android Device Chooser上不公开.我更新了Eclipse和所有Android软件包.我的手机运行的是Android OS 1.6,它对应于Eclipse Project中列出的目标版本.
此外,我决定尝试在真实设备上进行测试的原因是因为当我运行我的项目时,模拟器似乎不再正常工作.模拟器启动,但程序永远不会.有任何想法吗?
(使用windows 7/t-mobile mytouch 3g)
我需要能够将字节数组与其他原始类型数组相互转换,但不是强制转换,我需要类型 punning。没有铸造的原始副本的正确术语?
我认为可以执行以下操作:
// idea: byte[12] -> int[3], and int[3] -> byte[12]
int[] ints;
ByteBuffer bb = ByteBuffer.wrap(
new byte[]{ 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3 });
IntBuffer ib = bb.asIntBuffer();
ints = ib.array(); // java.lang.UnsupportedOperationException
ints = ib.duplicate().array(); // java.lang.UnsupportedOperationException
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎bb.asIntBuffer()是不被复制的内容“按位”或“原始”创建一个新的IntBuffer,而造成对现有的ByteBuffer一个新的“视图”。这就是为什么.array()要失败。
我浏览了 JDK 的源代码,发现了一些类,这些类被所有这些缓冲区类使用并且可以做我需要的东西,但是是内部的(例如 class Unsafe)。
虽然我认为我的目标可以通过将字节缓冲区包装在 some 中ObjectInputStream并通过 读取原始值来实现.readInt(),但我认为这将是一种混乱且缓慢的解决方法。
那么,在不进行神奇的原始类型算术(移位,检查字节序,...)的情况下,还有其他可能的解决方案吗?
注意:我需要两个方向:byte[12] -> …
我刚研究了不相交的集合数据结构,我知道它也被称为"联合查找数据结构",union和find是这个数据结构的两个主要操作.我们可以在不相交集上执行并集,类似地我们可以执行查找操作; 我想知道除了union和find之外我们可以在不相交集上执行的其他操作.
我有一个带YesNoCancel按钮的消息框......
Yes将执行一些操作并关闭应用程序 - 工作正常No将无效并关闭应用程序 - (见下文)Cancel将不执行任何操作并保持应用程序打开 - (见下文).我使用DialogResult.No的No按钮,并DialogResult.Cancel为Cancel按钮.但按其中任何一个都会触发DialogResult.Cancel事件.有什么问题?
我们有一个与销售相关的项目.
现在我们将产品库存保存在一个名为的单独表中Stock.在销售,销售退货,购买和购买 - 退货时,库存表将被更新.它运作良好,但在我们删除或修改其中一个销售或购买时,维护库存更加困难.
我告诉我的老板,我们不希望保留的股票在一个单独的表,而是写一个函数从相关表计算股票(sales,purchase,...).每当用户想知道库存时,他们就会调用该函数来非常容易地获得库存.因此,我们不需要考虑库存维护.我认为这是一个好主意.
但他告诉我,如果有大量记录,该功能将花费更多时间来执行,这将降低软件的效率.我不知道这是否正确.我知道的一件事是它违反了DB的规范化.我们不需要将计算值保留在表中或表外.
我怎么设计这个DB?Stock更好或不是一个单独的表?
如何使用C代码创建目录(除了分叉和使用mkdir的方法)?有没有像dirent.h这样的东西?dirent.h只允许读取目录.(不使用外部库)
c++ ×2
java ×2
vb.net ×2
adb ×1
algorithm ×1
android ×1
buffer ×1
button ×1
bytebuffer ×1
c ×1
database ×1
device ×1
eclipse ×1
formclosing ×1
messagebox ×1
packet ×1
php ×1
struct ×1
syntax ×1
type-punning ×1