怎么在Word或者Excel里面把十进制的数字转换成二进制或者十六进制 ...
展开全部 代码 /// ///二进制数据转换为word文件 /// /// 二进制数据 /// word文件名 /// word保存的相对路径 public string ByteConvertWord(byte[] data, string fileName) { string savePath =@"\SystemWord\"+FormatNowTime(2)+@"\"; if (!System.IO.Directory.Exists(GetPath() + savePath)) { Directory.CreateDirectory(GetPath() + savePath); } savePath += fileName + ".doc"; string filePath = GetPath() + savePath; FileStream fs; if (System.IO.File.Exists(filePath)) { fs = new FileStream(filePath,FileMode.Truncate); } else { fs = new FileStream(filePath,FileMode.CreateNew); } BinaryWriter br = new BinaryWriter(fs); br.Write(data, 0, data.Length); br.Close(); fs.Close(); return savePath; } /// /// word文件转换二进制数据(用于保存数据库) /// /// word文件路径 /// 二进制 private byte[] wordConvertByte(string wordPath) { byte[] bytContent = null; System.IO.FileStream fs = null; System.IO.BinaryReader br = null; try { fs = new FileStream(wordPath,System.IO.FileMode.Open); } catch { } br = new BinaryReader((Stream)fs); bytContent = br.ReadBytes((Int32)fs.Length); return bytContent; } /// ///项目所在目录 /// /// public string GetPath() { return Application.StartupPath; } /// ///格式化当前时间: /// 1:yyMMddHHmmss; 2:yyyy-MM\dd\ /// /// public string FormatNowTime(int num) { if (num == 1) { returnDateTime.Now.ToString("yyMMddHHmmss"); } else if (num == 2) { returnDateTime.Now.ToString("yyyy-MM") + @"\" + DateTime.Now.Day; } return ""; } //测试方法 private void button1_Click(object sender,EventArgs e) { string newWord = ByteConvertWord(wordConvertByte(@"D:\测试文件.doc"),"测试成功"); }
汉字转二进制是怎么转的
http://www.whylover.com/?p=670这里有`比较方便``如果你要解释的话请耐心看看字符编码与汉字编码 1.字符编码 目前微型机中普遍采用的字符编码是ASCII码。
它是用七位二进制数对127个字符进行编码,其中前32个是一些不可打印的控制符号。
2.汉字编码及字模信息 汉字有两种编码:国标码与机内码。
国标码是"中华人民共和国国家标准信息交换汉字编码",代号为"GB2312-80"。
在国标码的字符集中,收集了一级汉字3755个,二级汉字3008个,图形符号682个,共7445个。
一个汉字对应一个区位码,由四位数字组成,前两位数字为区码(0~94),后两位数字为位码(0~94)。
机内码是指汉字在计算机中的编码 汉字的机内码占两个字节,分别称为机内码的高位与低位。
它们与区位码的关系如下: 机内码高位=区码+A0H 机内码低位=位码+A0H 汉字字库是由所有汉字的字模信息构成的。
一个汉字字模信息占若干字节,究竟占多少个字节由汉字的字形决定。
例如,如果用16*16点阵表示一个汉字,则一个汉字占16行,每行有16个点,在存储时用两个字节存放一行上16个点的信息,对应位为"0"表示该点为"白","1"表示该点为"黑"。
因此,一个16*16点阵的汉字占32个字节。
20、30转成二进制是多少,怎么转?
20(十进制) = 10100(二进制)30(十进制) = 11110(二进制)十进制整数转换为二进制整数:十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
例:20(十进制) = 10100(二进制)20/2=10余010/2=5余05/2=2余12/2=1余01/2=0余1
汇编十进制数制转换二进制和十六进制
; 本程序通过编译,运行正确 Code Segment Assume CS:Code,DS:Code CR equ 000DH LF equ 000AH KBBack equ 0008H; -----------------------------------------; 功能:显示指定地址(Str_Addr)的字符串; 入口:; Str_Addr=字符串地址(要求在数据段); 用法: Output Str_Addr; 用法举例:Output PromptStr Output MACRO Str_Addr lea dx,Str_Addr mov ah,9 int 21h EndM; -----------------------------------------; 功能:输出回车换行 Output_CTLF proc Near push ax push dx mov ah,02h mov dl,0dh int 21h mov dl,0ah int 21h pop dx pop ax ret Output_CTLF endp ; -----------------------------------------; 功能:取光标位置; 入口:无; 出口:DH=行号,DL=列号 GetCursor Proc Near PUSH AX PUSH BX PUSH CX XOR BX,BX MOV AH,3 INT 10H MOV Cursor_Row,DH MOV Cursor_Col,DL POP CX POP BX POP AX RET Cursor_Row DB ?Cursor_Col DB ?GetCursor EndP; -----------------------------------------; 功能:置光标位置; 入口:Cursor_Row=行坐标; Cursor_Col: 列坐标) SetCursor Proc Near PUSH CX PUSH BX PUSH AX MOV DH,Cursor_Row MOV DL,Cursor_Col XOR BX,BX MOV AH,2 INT 10H POP AX POP BX POP CX RET SetCursor EndP; -----------------------------------------; 功能:键盘输入一个指定位数的十进制数字,将其转换成二进制数并保存在指定的内存单元。
; 入口:@@Digits=数字位数;di=保存输入的数字首地址; @@Type_Data=保存的数据类型,B=字节类型,W=字类型。
; 出口:转换后的二进制数保存在di所指的单元 Input_Digit Proc Near push dx push cx push bx push di lea di,@@Save_Tmp push di cld mov cl,@@Digits xor ch,ch push cx @@Input: call GetCursor ;取光标位置 mov ah,1 ;从键盘接受一个字符 int 21h cmp al,CR ;若键入的是回车,已经键入的数字不足N位 jz @@ASC_Dec ;转去处理已经键入的数字 cmp al,KBBack jz @@KB_Back ;若是回空键,重新输入 cmp al,'0' jb @@KBBack ;若低于数字'0',重新输入 cmp al,'9' ja @@KBBack ;若低于数字'9',重新输入 jmp @@Save_Dig @@KB_Back: dec Cursor_Col inc cx dec di @@KBBack: call SetCursor ;置光标位置 jmp @@Input @@Save_Dig: and al,0fh ;转换成二进制数 stosb ;保存 loop @@Input ;接受下一个数字 @@ASC_Dec: mov ax,cx pop cx pop si sub cx,ax ;实际输入的数字位数 xor bp,bp xor dx,dx xor ax,ax jcxz @@Save_Ret ;若直接回车,没有输入任何数字,按输入'0'处理 dec cx ;实际输入的数字位数减1,准备把输入的这一串数字转换成二进制数 jcxz @@One_Digit ;若输入的数字只有一位,转去直接保存这个二进制数 mov bx,10 @@Mul_Ten: lodsb cbw add ax,bp mul bx mov bp,ax loop @@Mul_Ten @@One_Digit:lodsb cbw add ax,bp @@Save_Ret: pop di cmp @@Type_Data,'B' ;字节类型? jz $+5 stosw jmp $+3 stosb pop bx pop cx pop dx ret @@Digits db ? ;十进制数字位数 @@Type_Data db 'B' ;保存的数据类型。
B=字节类型,W=字类型 @@Save_Tmp db 16 dup(?) Input_Digit EndP; -----------------------------------------; 功能:将AL中的低4位二进制数转换成十六进制显示的ASCII码; 入口:AL; 出口:AL=转换后的ASCII码 AL_ASCII Proc Near cmp al,10 ;AL jb @@To_ASCII ;AL add al,7 ;AL>=10,按大写字母处理 @@To_ASCII: add al,'0' ;转换成相应的数字或大写字母 ret AL_ASCII EndP ; ----------------------------------------- Number dw ?prompt_One db 'Please input a decimal number(2-4bits): $' prompt_Two db 'The binary: $' prompt_Thr db 'The heximal: $' Start: push cs pop ds push cs pop es ;使数据段、附加段与代码段同段 mov @@Digits,4 ;十进制数字位数 mov @@Type_Data,'W' ;保存的数据类型。
B=字节类型,W=字类型 Input_Deci: Output prompt_One ;提示输入一个十进制数 lea di,Number ;变量Number的地址 call Input_Digit ;键盘输入一个指定位数的十进制数字,将其转换成二进制数并保存在指定的内存单元 cmp Number,10 jb Input_Deci ;少于2位十进制数,重新输入 call Output_CTLF ;输出一个回车、换行 call Output_CTLF ;输出一个回车、换行; -----------------------------------------; 转换为对应的二进制数 Output prompt_Two lea di,@@Save_Tmp[14] mov word ptr [di],'$B' mov ax,Number @@L0: dec di test ax,0ffffh jz @@L1 shr ax,1 jc $+7 mov byte ptr [di],'0' jmp @@L0 mov byte ptr [di],'1' jmp @@L0 @@L1: inc di mov dx,di mov ah,9 int 21h; -----------------------------------------; 转换为对应的十六进制数 call Output_CTLF ;输出一个回车、换行 Output prompt_Thr mov ax,Number lea di,@@Save_Tmp[14] mov word ptr [di],'$H' mov cl,4 mov ax,Number @@L2: dec di test ax,0ffffh jz @@L3 mov bx,ax shr bx,cl and ax,0fh call AL_ASCII ;将AL中的低4位二进制数转换成十六进制显示的ASCII码 mov [di],al mov ax,bx jmp @@L2 @@L3: inc di mov dx,di mov ah,9 int 21h ...
二进制转十进制
十进制转二进制: 用2辗转相除至结果为1 将余数和最后的1从下向上倒序写 就是结果 例如302 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 故二进制为100101110 二进制转十进制 从最后一位开始算,依次列为第0、1、2...位 第n位的数(0或1)乘以2的n次方 得到的结果相加就是答案 例如:01101011.转十进制: 第0位:1乘2的0次方=1 1乘2的1次方=2 0乘2的2次方=0 1乘2的3次方=8 0乘2的4次方=0 1乘2的5次方=32 1乘2的6次方=64 0乘2的7次方=0 然后:1+2+0 +8+0+32+64+0=107. 二进制01101011=十进制107.
二进制转10进制
二进制转换成十进制,写出二进制各位上的基数,这个基数非常简单,个位是1(各进制都是1),然后向小数点左边写,每位都是右边位乘以2,写到10010的位数为止16 8 4 2 1 然后将10010按照位对齐写到下面一行1 0 0 1 0这个式子上下按位做乘法,结果左右做加法=1*16+0*8+0*4+1*2+0*1=16+2=18,简单说这个数中有一个16和一个2,其他都是0,加起来就好了101.01整数部分还是那么写,写3位即可,现在写小数部分,从小数点向右写,每位都是左边位除以2,然后将要求的数写在下面,还是那么计算4 2 1. 1/2 1/41 0 1. 0 11*4+0*2+1*1+0*1/2+1*1/4=4+1+0.25=5.25提示:将上面写基数时乘以2和除以2的地方换成乘以n和除以n则可转换n进制,这个方法不用去记忆指数公式,光记住个位是1即可,用笔算可以简单完成。
转为十进制为:0*2^0+1*2^1+0*2^2+1*2^3+0*2^4+1*2^5= 2^1+2^3+2^5=42 二进制是计算技术中广泛采用的一种数制。
二进制数据是用0和1两个数码来表示的数。
它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。
计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,因为数字计算机只能识别和处理由'0'.'1'符号串组成的代码。
其运算模式正是二进制。
19世纪爱尔兰逻辑学家乔治布尔对逻辑命题的思考过程转化为对符号"0''.''1''的某种代数演算,二进制是逢2进位的进位制。
0、1是基本算符。
因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现。
十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法) 【例】: 89÷2 ……1 44÷2 ……0 22÷2 ……0 11÷2 ……1 5÷2 ……1 2÷2 ……0 1 · 十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法) 【例】: (0.625)10= (0.101)2 0.625X2=1.25 ……1 0.25 X2=0.50 ……0 0.50 X2=1.00 ……1 十进制1至128的二进制表示: 0=0 1=1 2=10 3=11 4=100 5=101 6=110 7=111 8=1000 9=1001 10=1010 11=1011 12=1100 13=1101 14=1110 15=1111 16=10000 17=10001 18=10010 19=10011 20=10100 21=10101 22=10110 23=10111 24=11000 25=11001 26=11010 27=11011 28=11100 29=11101 30=11110 31=11111 32=100000 33=100001 34=100010 35=100011 36=100100 37=100101 38=100110 39=100111 40=101000 41=101001 42=101010 43=101011 44=101100 45=101101 46=101110 47=101111 48=110000 49=110001 50=110010 51=110011 52=110100 53=110101 54=110110 55=110111 56=111000 57=111001 58=111010 59=111011 60=111100 61=111101 62=111110 63=111111 64=1000000 65=1000001 66=1000010 67=1000011 68=1000100 69=1000101 70=1000110 71=1000111 72=1001000 73=1001001 74=1001010 75=1001011 76=1001100 77=1001101 78=1001110 79=1001111 80=1010000 81=1010001 82=1010010 83=1010011 84=1010100 85=1010101 86=1010110 87=1010111 88=1011000 89=1011001 90=1011010 91=1011011 92=1011100 93=1011101 94=1011110 95=1011111 96=1100000 97=1100001 98=1100010 99=1100011 100=1100100 101=1100101 102=1100110 103=1100111 104=1101000 105=1101001 106=1101010 107=1101011 108=1101100 109=1101101 110=1101110 111=1101111 112=1110000 113=1110001 114=1110010 115=1110011 116=1110100 117=1110101 118=1110110 119=1110111 120=1111000 121=1111001 122=1111010 123=1111011 124=1111100 125=1111101 126=1111110 127=1111111 128=10000000
转载请注明出处51数据库 » word怎么转二进制
过来给你看个宝贝