我正在使用phpMyAdmin来创建我的表结构.
我可以从MySQL的文档页面上读到有关整数类型的大小限制: MySQL整数类型参考
所以这里是我在创建专栏时感到困惑的地方.
我想在表中创建一个列:tbl_note_categories调用notescounter
我不认为自己会在tbl_notes任何具体的情况下创造成千上万的音符categoryid.但我相信我会为每个categoryid创建数百个音符.
我正在选择:tinyint,smallint,mediumint.根据上面的文档链接,我猜测smallint是我的最佳选择.
所以这是我的困惑.PhpMyAdmin要求指定Length/Values参数.我要确保这个新列(notescounter)是无符号的,给我高达65536.这是否意味着我需要长度/值为(5)?
我猜长度是字符长度,但我不确定.(与varchar比较)

我使用RSA算法进行加密/解密,为了解密文件,你必须处理一些非常大的值.更具体地说,像
P = C^d % n
= 62^65 % 133
Run Code Online (Sandbox Code Playgroud)
现在这真的是唯一不适当的计算.我尝试过使用Matt McCutchen的BigInteger库,但是在链接过程中我遇到了很多编译错误,例如:
encryption.o(.text+0x187):encryption.cpp: undefined reference to `BigInteger::BigInteger(int)'
encryption.o(.text+0x302):encryption.cpp: undefined reference to `operator<<(std::ostream&, BigInteger const&)'
encryption.o(.text$_ZNK10BigIntegermlERKS_[BigInteger::operator*(BigInteger const&) const]+0x63):encryption.cpp: undefined reference to `BigInteger::multiply(BigInteger const&, BigInteger const&)'
Run Code Online (Sandbox Code Playgroud)
所以我想知道处理RSA算法产生的真正大整数的最佳方法是什么.
我听说有可能将你的变量声明为双倍长,所以......
long long decryptedCharacter;
Run Code Online (Sandbox Code Playgroud)
但我不确定可以存储多大的整数.
好吧,例如,我尝试使用dev C++编译并运行以下程序:
#include iostream
#include "bigint\BigIntegerLibrary.hh"
using namespace std;
int main()
{
BigInteger a = 65536;
cout << (a * a * a * a * a * a * a * a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然后我得到了那些错误.
Derek,我认为通过包含BigIntegerLibrary.hh文件,编译器会经历并编译它将使用的所有必要文件. …
我正在为128位数字的长流写一个压缩器.我想将数字存储为差异 - 仅存储数字之间的差异而不是数字本身,因为我可以将差异打包在更少的字节中,因为它们更小.
但是,对于压缩,我需要减去这些128位值,对于解压缩,我需要添加这些值.我的编译器的最大整数大小是64位宽.
任何人有任何想法有效地做到这一点?
我正在寻找一个允许我打印int的二进制表示的函数.到目前为止我所拥有的是什么;
char *int2bin(int a)
{
char *str,*tmp;
int cnt = 31;
str = (char *) malloc(33); /*32 + 1 , because its a 32 bit bin number*/
tmp = str;
while ( cnt > -1 ){
str[cnt]= '0';
cnt --;
}
cnt = 31;
while (a > 0){
if (a%2==1){
str[cnt] = '1';
}
cnt--;
a = a/2 ;
}
return tmp;
}
Run Code Online (Sandbox Code Playgroud)
但是当我打电话时
printf("a %s",int2bin(aMask)) // aMask = 0xFF000000
Run Code Online (Sandbox Code Playgroud)
我输出像;
0000000000000000000000000000000000xtpYy(还有一堆未知字符.
这是函数中的缺陷还是我打印字符数组的地址或什么?对不起,我只是看不出我出错的地方.
NB代码来自这里
编辑:这不是家庭作业FYI,我正在尝试用不熟悉的语言调试别人的图像处理程序.然而,如果它被标记为家庭作业,因为它是一个基本概念,然后公平竞争.
简单的问题.我尝试在Google上搜索,经过大约6次搜索,我认为这会更快.
SQL中的int有多大?
-- table creation statement.
intcolumn INT(N) NOT NULL,
-- more table creation statement.
Run Code Online (Sandbox Code Playgroud)
那个INT(N)元素有多大?它的范围是什么?它是2 ^ N还是N字节长?(2 ^ 8N)?或者甚至是我不知道的其他事情?
可能重复:
如何将NSInteger转换为int?
我是iOS编程的新手,如何将int转换为NSInteger.我找到了关于如何将NSInteger转换为NSNumber的参考资料,但我无法弄明白.任何帮助,将不胜感激.谢谢.
我有以下代码行:
suffix = suffix.isEmpty() ? "1" : Integer.toString(Integer.parseInt(suffix)+1);
Run Code Online (Sandbox Code Playgroud)
在一个块中,后缀已被声明为空String("").该块正在查找重复的文件名并在任何重复项上添加一个数字,因此它们不再具有相同的名称.
上面的代码行编译得很好,但是如果我改成它,
suffix = suffix.isEmpty() ? "1" : Integer.toString(Integer.parseInt(suffix)++);
Run Code Online (Sandbox Code Playgroud)
我得到Invalid argument to operation ++/--.既然Integer.parseInt()返回和int,为什么我不能使用++运算符?
我知道如何将枚举类型转换为整数.
type
TMyType = (mtFirst, mtSecond, mtThird);
var
ordValue:integer;
enumValue:TMyType;
...
ordValue:= Ord(mtSecond); // result is 1
Run Code Online (Sandbox Code Playgroud)
但是,如何进行逆运算并将整数转换为枚举类型?
我正在使用Eclipse在Android中开发应用程序.我编写了以下代码,在测试中第一个和第三个" if "块无法访问.为什么?
当我向数字添加前导零时,等于运算符返回false.
int var = 123;
if (var == 0123) {
//not reachable
}
if (var == 123) {
//reachable
}
if (var == (int)0123) {
//not reachable
}
if (var == (int)123) {
//reachable
}
Run Code Online (Sandbox Code Playgroud) 看看这段代码:
int a = 0xe+1;
Run Code Online (Sandbox Code Playgroud)
Clang,gcc,icc不编译这个:
t.cpp:1:12: error: invalid suffix '+' on integer constant
Run Code Online (Sandbox Code Playgroud)
MSVC成功编译.
哪个编译器正确?如果clang和gcc是正确的,为什么会发生这种情况?
注意:如果我之前添加空格+,代码将编译.如果我换0xe到0xf,它也会编译.也许这必须用指数表示法(比如1.2e+3)做一些事情?