标签: integer

MySQL - 整数列的大小限制

我正在使用phpMyAdmin来创建我的表结构.

我可以从MySQL的文档页面上读到有关整数类型的大小限制: MySQL整数类型参考


所以这里是我在创建专栏时感到困惑的地方.

我想在表中创建一个列:tbl_note_categories调用notescounter

我不认为自己会在tbl_notes任何具体的情况下创造成千上万的音符categoryid.但我相信我会为每个categoryid创建数百个音符.

我正在选择:tinyint,smallint,mediumint.根据上面的文档链接,我猜测smallint是我的最佳选择.

所以这是我的困惑.PhpMyAdmin要求指定Length/Values参数.我要确保这个新列(notescounter)是无符号的,给我高达65536.这是否意味着我需要长度/值为(5)?

我猜长度是字符长度,但我不确定.(与varchar比较)

PhpMyadmin中新列的快照

mysql integer phpmyadmin

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

C++处理非常大的整数

我使用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文件,编译器会经历并编译它将使用的所有必要文件. …

c++ integer rsa biginteger

23
推荐指数
4
解决办法
7万
查看次数

如果我的编译器不支持它们,如何在C或C++中添加和减去128位整数?

我正在为128位数字的长流写一个压缩器.我想将数字存储为差异 - 仅存储数字之间的差异而不是数字本身,因为我可以将差异打包在更少的字节中,因为它们更小.

但是,对于压缩,我需要减去这些128位值,对于解压缩,我需要添加这些值.我的编译器的最大整数大小是64位宽.

任何人有任何想法有效地做到这一点?

c++ integer 128-bit

23
推荐指数
4
解决办法
3万
查看次数

使用C在二进制表示中打印int

我正在寻找一个允许我打印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,我正在尝试用不熟悉的语言调试别人的图像处理程序.然而,如果它被标记为家庭作业,因为它是一个基本概念,然后公平竞争.

c binary integer

23
推荐指数
3
解决办法
9万
查看次数

什么是SQL Int(N)的大小?

简单的问题.我尝试在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)?或者甚至是我不知道的其他事情?

sql size int integer

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

将int转换为NSInteger

可能重复:
如何将NSInteger转换为int?

我是iOS编程的新手,如何将int转换为NSInteger.我找到了关于如何将NSInteger转换为NSNumber的参考资料,但我无法弄明白.任何帮助,将不胜感激.谢谢.

iphone integer nsinteger ios

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

为什么Integer.parseInt("1")++不能在Java中工作?

我有以下代码行:

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,为什么我不能使用++运算符?

java int integer

23
推荐指数
5
解决办法
3018
查看次数

如何将整数转换为枚举类型?

我知道如何将枚举类型转换为整数.

type
  TMyType = (mtFirst, mtSecond, mtThird); 

var 
  ordValue:integer;
  enumValue:TMyType;
...
ordValue:= Ord(mtSecond); // result is 1
Run Code Online (Sandbox Code Playgroud)

但是,如何进行逆运算并将整数转换为枚举类型?

delphi integer enumeration casting

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

为什么java中没有(123 == 0123)?

我正在使用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)

java integer operators equality-operator

23
推荐指数
3
解决办法
3117
查看次数

为什么不"0xe + 1"编译?

看看这段代码:

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)做一些事情?

c++ syntax integer literals language-lawyer

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