精华内容
下载资源
问答
  • 本文概述我们可以使用Integer.parseInt()方法或自定义逻辑在Java中将八进制转换十进制。Java八进制到十进制的转换:Integer.parseInt()Integer.parseInt()方法将字符串转换为具有给定基数的int。如果将8作为基数...

    本文概述

    我们可以使用Integer.parseInt()方法或自定义逻辑在Java中将八进制转换为十进制。

    Java八进制到十进制的转换:Integer.parseInt()

    Integer.parseInt()方法将字符串转换为具有给定基数的int。如果将8作为基数传递, 它将八进制字符串转换为十进制。让我们看一下parseInt()方法的签名:

    public static int parseInt(String s, int radix)

    让我们看一下在Java中将八进制转换为十进制的简单示例。

    //Java Program to demonstrate the use of Integer.parseInt() method

    //for converting Octal to Decimal number

    public class OctalToDecimalExample1{

    public static void main(String args[]){

    //Declaring an octal number

    String octalString="121";

    //Converting octal number into decimal

    int decimal=Integer.parseInt(octalString, 8);

    //Printing converted decimal number

    System.out.println(decimal);

    }}

    立即测试

    输出:

    81

    让我们看看Integer.parseInt()方法的另一个示例。

    //Shorthand example of Integer.parseInt() method

    public class OctalToDecimalExample2{

    public static void main(String args[]){

    System.out.println(Integer.parseInt("121", 8));

    System.out.println(Integer.parseInt("23", 8));

    System.out.println(Integer.parseInt("10", 8));

    }}

    立即测试

    输出:

    81

    19

    8

    Java八进制到十进制的转换:自定义逻辑

    我们可以使用自定义逻辑在Java中将八进制转换为十进制。

    //Java Program to demonstrate the conversion of Octal to Decimal

    //using custom code

    public class OctalToDecimalExample3{

    //Declaring method

    public static int getDecimal(int octal){

    //Declaring variable to store decimal number

    int decimal = 0;

    //Declaring variable to use in power

    int n = 0;

    //writing logic

    while(true){

    if(octal == 0){

    break;

    } else {

    int temp = octal%10;

    decimal += temp*Math.pow(8, n);

    octal = octal/10;

    n++;

    }

    }

    return decimal;

    }

    public static void main(String args[]){

    //Printing the result of conversion

    System.out.println("Decimal of 121 octal is: "+getDecimal(121));

    System.out.println("Decimal of 23 octal is: "+getDecimal(23));

    System.out.println("Decimal of 10 octal is: "+getDecimal(10));

    }}

    立即测试

    输出:

    Decimal of 121 is: 81

    Decimal of 23: 19

    Decimal of 10 is: 8

    参考文献

    Integer.parseInt()JavaDoc

    Integer.parseInt()srcmini

    展开全文
  • C语言实现进制转换函数的实例详解前言:写一个二进制,八进制,十六进制转换十进制的函数要求:函数有两个参数,参数(1)是要转换为十进制的进制数,参数(2)是标示参数(1)是什么进制(2,8,16标示二进制,八进制,...

    C语言实现进制转换函数的实例详解

    前言:

    写一个二进制,八进制,十六进制转换为十进制的函数

    要求:

    函数有两个参数,参数(1)是要转换为十进制的进制数,参数(2)是标示参数(1)是什么进制(2,8,16标示二进制,八进制,十六进制)。

    要有报错信息,比如参数是1012,但参数(2)是2,显然是进制数表示有错误。

    系统表 pg_proc 存储关于函数的信息

    内部函数在编译之前需要先定义在 pg_proc.h 中,src/include/catalog/pg_proc.h

    CATALOG(pg_proc,1255) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81) BKI_SCHEMA_MACRO

    {

    NameData proname; /* procedure name */ /* 函数名,sql 中 select 函数名(); */

    Oid pronamespace; /* OID of namespace containing this proc */ /* 模式OID */

    Oid proowner; /* procedure owner */ /* 用户OID */

    Oid prolang; /* OID of pg_language entry */

    float4 procost; /* estimated execution cost */ /* 估计执行成本 */

    float4 prorows; /* estimated # of rows out (if proretset) */ /* 结果行估计数 */

    Oid provariadic; /* element type of variadic array, or 0 */

    regproc protransform; /* transforms calls to it during planning */

    bool proisagg; /* is it an aggregate? */ /* 是否为聚集函数 */

    bool proiswindow; /* is it a window function? */ /* 是否为窗口函数 */

    bool prosecdef; /* security definer */ /* 函数是一个安全定义器,也就是一个“setuid"函数 */

    bool proleakproof; /* is it a leak-proof function? */ /* 有无其他影响 */

    bool proisstrict; /* strict with respect to NULLs? */ /* 遇到 NULL 值是否直接返回 NULL */

    bool proretset; /* returns a set? */ /* 函数返回一个集合 */

    char provolatile; /* see PROVOLATILE_ categories below */

    int16 pronargs; /* number of arguments */ /* 参数个数 */

    int16 pronargdefaults; /* number of arguments with defaults */ /* 默认参数的个数 */

    Oid prorettype; /* OID of result type */ /* 返回参数类型OID */

    /*

    * variable-length fields start here, but we allow direct access to

    * proargtypes

    */

    oidvector proargtypes; /* parameter types (excludes OUT params) */ /* 存放函数参数类型的数组 */

    #ifdef CATALOG_VARLEN

    Oid proallargtypes[1]; /* all param types (NULL if IN only) */

    char proargmodes[1]; /* parameter modes (NULL if IN only) */

    text proargnames[1]; /* parameter names (NULL if no names) */

    pg_node_tree proargdefaults;/* list of expression trees for argument

    * defaults (NULL if none) */

    Oid protrftypes[1]; /* types for which to apply transforms */

    text prosrc BKI_FORCE_NOT_NULL; /* procedure source text */ /* 函数处理器如何调用函数,实现函数的函数名 */

    text probin; /* secondary procedure info (can be NULL) */

    text proconfig[1]; /* procedure-local GUC settings */

    aclitem proacl[1]; /* access permissions */

    #endif

    } FormData_pg_proc;

    在 proc.h 添加函数定义:

    /* myfunc */

    DATA(insert OID = 6663 ( x_to_dec PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 23 "25 23" _null_ _null_ _null_ _null_ _null_ x_to_dec _null_ _null_ _null_ ));

    DESCR("x_to_dec.");

    OID = 6663 /* OID 唯一,不能与其他定义 OID 重复 */

    x_to_dec /* sql 中 select x_to_dec(); */

    2 0 23 "25 23" /* 传递两个参数; 默认 0; 返回值类型 OID = 23; 参数1类型 OID = 25, 参数2类型 OID = 23 */

    x_to_dec /* 自定义函数名 */

    这里的传递参数类型和返回值类型都用的了 OID

    系统表 pg_type 存储数据类型的信息

    postgres=# select oid,typname from pg_type where typname = 'text' or typname = 'int4';

    oid | typname

    -----+---------

    23 | int4

    25 | text

    (2 rows)

    在 src/backend/utils/adt/myfuncs.c 实现自定义的函数

    首先创建函数的整体部分:

    Datum /* Datum 类型是PG系统函数大量引用的类型,其定义为:typedef uintptr_c Datum */

    x_to_dec (PG_FUNCTION_ARGS) /* 函数名; 参数 */

    {

    /* 获取参数 */

    text *arg1 = PG_GETARG_TEXT_P(0);

    int32 arg2 = PG_GETARG_INT32(1);

    /** 实现功能 **/

    /* 返回 */

    PG_RETURN_INT32(sum);

    }

    这里的 PG_GETARG_XXXX() 和 PG_RETURN_XXXXX() 在 src/include/fmgr.h

    知道了如何获取参数以及返回返回值,接下来是具体的实现:

    Datum x_to_dec (PG_FUNCTION_ARGS)

    {

    int n = 0, i = 0, sum = 0, t = 0;

    text *arg1 = PG_GETARG_TEXT_P(0);

    int32 arg2 = PG_GETARG_INT32(1);

    char *str = text_to_cstring(arg1);

    n = strlen(str);

    switch(arg2)

    {

    case 2:

    for(i = n - 1; i >= 0; i--)

    {

    if((str[i] - '0') != 1 && (str[i] - '0') != 0)

    {

    ereport(ERROR,

    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),

    errmsg("Please enter the correct binary number, such as '110011'.")));

    }

    sum += (str[i] - '0') * ((int)pow(2, n - 1 - i));

    }

    break;

    case 8:

    for(i = n - 1; i >= 0; i--)

    {

    if(!(str[i] >= '0' && str[i] <= '7'))

    {

    ereport(ERROR,

    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),

    errmsg("Please enter the correct octal number, for example '34567'.")));

    }

    sum += (str[i] - '0') * ((int)pow(8, n - 1 - i));

    }

    break;

    case 16:

    for(i = n - 1; i >= 0; i--)

    {

    if( !(str[i] >= '0' && str[i] <= '9') )

    {

    if(str[i] >= 'A' && str[i] <= 'F')

    {

    // Uppercase to lowercase

    str[i] = str[i] + 32;

    } else if ( !(str[i] >= 'a' && str[i] <= 'f') ) {

    ereport(ERROR,

    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),

    errmsg("Please enter the correct hexadecimal number, for example '9f'.")));

    }

    }

    if(str[i] <= '9')

    {

    t = str[i] - '0';

    } else {

    t = str[i] - 'a' + 10;

    }

    sum = sum * 16 + t;

    }

    break;

    default:

    ereport(ERROR,

    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),

    errmsg("Out of range! The second parameter, please enter: 2, 4, 16.")));

    }

    PG_RETURN_INT32(sum);

    }

    其中用到了text_to_cstring(arg1) ,类型转换的相关函数定义在 src/backend/utils/adt/varlena.c

    /*

    * text_to_cstring

    *

    * Create a palloc'd, null-terminated C string from a text value.

    *

    * We support being passed a compressed or toasted text value.

    * This is a bit bogus since such values shouldn't really be referred to as

    * "text *", but it seems useful for robustness. If we didn't handle that

    * case here, we'd need another routine that did, anyway.

    */

    char *

    text_to_cstring(const text *t)

    {

    /* must cast away the const, unfortunately */

    text *tunpacked = pg_detoast_datum_packed((struct varlena *) t);

    int len = VARSIZE_ANY_EXHDR(tunpacked);

    char *result;

    result = (char *) palloc(len + 1);

    memcpy(result, VARDATA_ANY(tunpacked), len);

    result[len] = ' ';

    if (tunpacked != t)

    pfree(tunpacked);

    return result;

    }

    结果:

    postgres=# select x_to_dec('111',2);

    x_to_dec

    ----------

    7

    (1 row)

    postgres=# select x_to_dec('aA',16);

    x_to_dec

    ----------

    170

    (1 row)

    postgres=# select x_to_dec('aA',1);

    ERROR: Out of range! The second parameter, please enter: 2, 4, 16.

    以上就是进制转换的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    展开全文
  • 八进制转十进制计算器八进制:十进制:进制:进制:转换说明:上面第一行可将八进制转换十进制,第二行可以将任意进制转换为任意进制。64个基数为:"[emailprotected]"八进制与十进制互转算法八进制转换十进制,...

    八进制转十进制计算器

    八进制:

    十进制:

    进制:

    进制:

    转换说明:上面第一行可将八进制转换为十进制,第二行可以将任意进制转换为任意进制。

    64个基数为:

    "[email protected]"

    八进制与十进制互转算法

    八进制转换为十进制,其方法与二进制转换成十进制方法类似,各位基数乘以其权值得到一个数值,并把各位的数值再加在一起,如将72.45转换为十进制。如图1所示。

    1-161025163121526.jpg

    十进制转八进制,有两种方法:一种是按照十进掉转二进制的方法,整数部分除8取余,小数部分乘8取整。另一种间接的方法是先把十进制转换成为二进制,然后再将二进制转换为八进制。

    先来看看第一种方法,整数部分,除8取余法,每次将整数部分除以8,余数为该位权上的数,商继续除以8,余数又为上一个位权上的数,然后以此类推一直下去,直到商为零,最后从最后一个余数向前排列就可以了,还是上图直观,如图2所示。

    1-1610251632224S.jpg

    再看小数部分,与转二进制相同,这里是乘八取整法,也就是说小数部分乘以8,然后取整数部分,再让剩下的小数部分再乘以8,再取整数部分,……以此类推,一直乘到小数部分为零为止。例如0.703125,如图3所示。

    1-1610251633091U.jpg

    小数部分乘以8,如果永远也碰不到零该怎么办?如图4所示(假设示范哦),那就根据位数要求进行“3舍4入”吧。

    1-161025163334I2.jpg

    先把十进制转换为二进制,然后再由二进制转换为8进制,例如将十进制478.0245转为八进制。

    先转为二进制为(转换方法这里就不再累述了哦,不知道的看教程介绍吧):

    (478.125)10=(111011110.001)2

    二进制再转为八进制为(转换方法这里就不再累述了哦,不知道的看教程介绍吧):

    (111011110.001)2=(736.1)8

    咱们用图来解释一下,如图5所示为转换为二进制的介绍。

    1-16102516341bJ.jpg

    然后再将二进制转换为八进制,还是再温习一下二进制数与八进制数的对照表吧,如图6所示。

    1-161025163450223.jpg

    对照图表将二进制转换为八进制后的结果如图7所示。

    1-161025163514263.jpg

    展开全文
  • 使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换。先看Python官方文档中对这几个内置函数的描述:bin(x)Convert an integer number to a binary string. The result is a valid Python expression. ...

    使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换。

    先看Python官方文档中对这几个内置函数的描述:

    bin(x)

    Convert an integer number to a binary string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns an integer.

    oct(x)

    Convert an integer number to an octal string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns an integer.

    int([number | string[, base]])

    Convert a number or string to an integer. If no arguments are given, return 0. If a number is given, return number.__int__(). Conversion of floating point numbers to integers truncates towards zero. A string must be a base-radix integer literal optionally preceded by ‘+' or ‘-‘ (with no space in between) and optionally surrounded by whitespace. A base-n literal consists of the digits 0 to n-1, with ‘a' to ‘z' (or ‘A' to ‘Z') having values 10 to 35. The default base is 10. The allowed values are 0 and 2-36. Base-2, -8, and -16 literals can be optionally prefixed with 0b/0B, 0o/0O, or 0x/0X, as with integer literals in code. Base 0 means to interpret exactly as a code literal, so that the actual base is 2, 8, 10, or 16, and so that int('010', 0) is not legal, while int('010') is, as well as int('010', 8).

    hex(x)

    Convert an integer number to a hexadecimal string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns an integer.

    2进制

    8进制

    10进制

    16进制

    2进制

    -

    bin(int(x, 8))

    bin(int(x, 10))

    bin(int(x, 16))

    8进制

    oct(int(x, 2))

    -

    oct(int(x, 10))

    oct(int(x, 16))

    10进制

    int(x, 2)

    int(x, 8)

    -

    int(x, 16)

    16进制

    hex(int(x, 2))

    hex(int(x, 8))

    hex(int(x, 10))

    -

    bin()、oct()、hex()的返回值均为字符串,且分别带有0b、0o、0x前缀。

    Python进制转换(二进制、十进制和十六进制)实例

    以下代码用于实现十进制转二进制、八进制、十六进制:

    执行以上代码输出结果为:

    python3 test.py

    输入数字:5

    十进制数为:5

    转换为二进制为: 0b101

    转换为八进制为: 0o5

    转换为十六进制为: 0x5

    python3 test.py

    输入数字:12

    十进制数为:12

    转换为二进制为: 0b1100

    转换为八进制为: 0o14

    转换为十六进制为: 0xc

    具体实现

    十进制到二进制:

    十进制到八进制:

    十进制到十六进制:

    python进2、8、16制转换源码

    python 十进制整数转换为任意进制(36以内)

    这篇文章就结束到这,需要的朋友可以参考一下,希望大家以后多多支持服务器之家。

    展开全文
  • 1.1 二进制 字母B表示1.2 八进制 字母O表示1.3 十进制 字母D表示14.4 十六机制 字母H表示二进制:逢二进一,只有数字0 1与十进制的换算关系如下;十进制转换为二进制(整数)(最后一个一可以直接写上去)2.十进小数制转...
  • 八进制:逢八进一 十进制:逢十进一 十六进制: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 A B C D E F 二进制->八进制 -分组-3个一组 二进制->十进制 -乘2的次幂 二进制->十六...
  • IP地址是一组能够识别主机和所在网络的编码,由32位二进制组成(等于4个字节),为了便于使用,常以xxx.xxx.xxx.xxx形式表现,每组xxx就代表小于或等于255的十进制数。由2部分组成,网络号+主机号。 分为
  • 要将八进制转换为其他进制,例如二进制,十六进制等,Java代码如下:示例publicclassDemo{publicstaticStringbase_convert(Stringnum,intsource,intdestination){returnInteger.toString(Integer.parseInt(num,...
  • 这个时候就需要把十六进制转换十进制 利用Win10自带的计算器把十六进制转换十进制: 首先在Win10的底部搜索框中输入“calc”或者中文“计算器”都可以找到Win10自带的计算器应用程序 .
  • python实现进制转换(二、八、十六进制;十进制)(一)十进制整数转为二、八、十六进制1、format实现转换>>> format(2,"b") # (10进制的)2转二进制'10'>>> format(9,"o") # (10进制的)9转八进制'11'&...
  • PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明更新时间:2011年12月05日 22:17:07 作者:中文字符编码研究系列第一期,PHP函数篇详解十进制、二进制、八进制和十六进制互相转换函数说明,主要掌握各...
  • Python迭代和生成 课程特色: 1.图解Python:用80多张原创图表表述所有知识点,让学员轻松学习,学习知识要 2.笔记Python:用450条笔记串连所有知识点,让学员从一点一滴积累 3.笔记标题采用关键字标识法,帮助...
  • 1.1 二进制 字母B表示1.2 八进制 字母O表示1.3 十进制 字母D表示14.4 十六机制 字母H表示二进制:逢二进一,只有数字0 1与十进制的换算关系如下;十进制转换为二进制(整数)(最后一个一可以直接写上去)2.十进小数制转...
  • String str[]={"十进制","二进制","四进制","八进制","十六进制"}; label=new Label[5];//重要 for(int i=0;i label[i]=new Label(str[i],Label.RIGHT); panel_left.add(label[i]); } text_field=new JTextField[10...
  • 2、掌握二进制、十进制八进制、十六进制的表示方法;3、掌握二进制与十进制间相互转换的方法。技能目标:1、培养学生逻辑运算能力;2、培养学生分析问题、解决问题的能力;3、培养学生独立思考问题的能力。情感目标...
  • Java实现一个简单的栈将十进制转为二进制、八进制、十六进制打印输出 栈的主要方法: push(); //入栈 pop(); //出栈并返回栈顶值 empty(); //判断栈是否为空 peek(); //获取栈顶的值 search(elem); //判断元素elem...
  • 生活中,人脑对很多事物都形成了条件反射,比如数字,习惯了十进制的我们可以很方便的对数字25、27进行大小比较和数值运算,却很难对二进制数字11001、11011有直观的感受。其实想要弄清楚这些进制很简单,十进制各位...
  • 二进制,十进制,十六制...二进制转换十进制计算公式:二进制数据X位数字乘以2的X-1次方的积的总和例:10101011b=()d数据10101011X-1位76543210相应的十进制值即为:27+25+23+21+20=128+32+8+2+1=1712.十六进制转...
  • python实现进制转换

    2021-03-06 02:53:31
    # dec2hex # 十进制 to 八进制: oct() # 十进制 to 十六进制: hex() def dec2hex(string_num): num = int(string_num) mid = [] while True: if num == 0: break num,rem = divmod(num, 16) mid.append(base[rem]) ...
  • 进制转换(包含小数转换)

    多人点赞 热门讨论 2021-10-18 22:12:20
    进制转换
  • 《河海大学C语言项目设计》课程设计题目:...输入一个数,按要求转化成二进制,八进制十进制。二、软件设计#include #include void erjz(__int64 n); void bajz(__int64 n); void sljz(__int64 n); int main() {in...
  • 同时按住键盘上的两个键。...四、选择“管理员”,这时候我们就会发现我们的二进制计算器的计算页面已经发生...这个时候我们二进制的转换器的已经完成了二进制转换十进制了以88为例,输入88..六、点击页面左侧计算器“...
  • java进制转换器 图形用户界面 十进制及其相反数分别转化为二,四,,十六进制package com.rgy.Test;import java.awt.Color;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.Label;import ...
  • c语言_各种进制转换.docxc 语言 各种进制转换 计算机中常用的数的进制主要有二进制、八进制、十六进制。 2 进制,用两个阿拉伯数字0、1; 8 进制,用八个阿拉伯数字0、1、2、3、4、5、6、7; 10 进制,用个阿拉伯...
  • 共回答了17个问题采纳率:82.4%字长取八位的意思就是,字节长度只取8位,其余的位数省略.你可以这样理解....为什么要取8位这个没有实际意义,书中为了简洁,所以才指出只取个二进制位.第二个的78.25不能取八位...
  • 进制转换总结

    2021-03-04 22:35:38
    将二进制、八进制、十六进制转换十进制 整数部分: 小数部分: 将十进制转换为二进制、八进制、十六进制: 整数部分: 十进制转换为N进制,用其数对N不断取余,直到商为零为止,然后逆序排列其余数,得到的数即是N进制后...
  • Java 进制转换

    千次阅读 2021-02-12 09:06:16
    Java进制转换主要分为2大类一、十进制转换成其他进制1、十进制转二进制Integer.toBinaryString(int i)例子:inta = 100; System.out.println(Integer.toBinaryString(a));输出结果:11001002、十进制八进制Integer...
  • 一、进制转换1.2十进制转二进制 bin(18)--> '0b10010' 去掉0b就是10010 即为十进制18转二进制是10010十进制八进制oct(18) -->'022' 去掉0 就是22 即为十进制18转八进制是22十进制转十六进制hex(18) -->'...
  • JAVA 简单进制转换器

    2021-03-04 06:49:20
    乱搞的..JAVA作业写了个进制转换器...写出来的东西还蛮怪的/** Author:graykido* Coding:GBK* */package Caculater;import javafx.scene.layout.Background;import javafx.scene.layout.BackgroundImage;import ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,098
精华内容 20,039
关键字:

十进制八进制转换器