Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
FIS01069
Introdução_a_computacao_UFPB
Commits
a0f179e7
Commit
a0f179e7
authored
Oct 31, 2014
by
Eduardo de Santana Medeiros Alexandre
Browse files
Atualização das imagens do cap3 #22
parent
084c016c
Changes
53
Expand all
Show whitespace changes
Inline
Side-by-side
livro/capitulos/cap3-sistema-de-numeracao.asc
View file @
a0f179e7
...
@@ -61,7 +61,7 @@ nesse sistema de numeração.
...
@@ -61,7 +61,7 @@ nesse sistema de numeração.
[[sistema_egipcio]]
[[sistema_egipcio]]
.Sistema de Numeração Egípcio
.Sistema de Numeração Egípcio
image::images/
sistema-de-numeracao
/sistema_egipicio.
png
[scaledwidth="70%"]
image::images/
{cap}
/sistema_egipicio.
eps
[scaledwidth="70%"]
Este sistema adota o princípio aditivo, ou seja, os símbolos possuem seus
Este sistema adota o princípio aditivo, ou seja, os símbolos possuem seus
...
@@ -80,16 +80,16 @@ números, de 7 a 59, nesse sistema de numeração.
...
@@ -80,16 +80,16 @@ números, de 7 a 59, nesse sistema de numeração.
[[fig_sistema_babilonico]]
[[fig_sistema_babilonico]]
.Sistema de Numeração Babilônico
.Sistema de Numeração Babilônico
image::images/
sistema-de-numeracao
/sistema_babilonico.
png
[scaledwidth="70%"]
image::images/
{cap}
/sistema_babilonico.
eps
[scaledwidth="70%"]
[NOTE]
[NOTE]
==================
==================
Agora é com você. Qual seria o valor que cada símbolo babilônico, seguindo
Agora é com você. Qual seria o valor que cada símbolo babilônico, seguindo
os exemplos da <<fig_sistema_babilonico>>?
os exemplos da <<fig_sistema_babilonico>>?
image:images/
sistema-de-numeracao
/um_babilonico.
png
[] = ?
image:images/
{cap}
/um_babilonico.
eps
[] = ?
image:images/
sistema-de-numeracao
/dez_babilonico.
png
[] = ?
image:images/
{cap}
/dez_babilonico.
eps
[] = ?
==================
==================
==== Sistema de numeração Romano
==== Sistema de numeração Romano
...
@@ -116,7 +116,7 @@ máximo, três vezes.
...
@@ -116,7 +116,7 @@ máximo, três vezes.
[[sistema_romano]]
[[sistema_romano]]
.Sistema de Numeração Romano
.Sistema de Numeração Romano
image::images/
sistema-de-numeracao
/sistema_romano.
png
[scaledwidth="60%"]
image::images/
{cap}
/sistema_romano.
eps
[scaledwidth="60%"]
==== Sistema de numeração Indo-Arábico
==== Sistema de numeração Indo-Arábico
...
@@ -149,7 +149,7 @@ indo-arábicos, ao longo do tempo.
...
@@ -149,7 +149,7 @@ indo-arábicos, ao longo do tempo.
[[fig_sistema_indo_arabico]]
[[fig_sistema_indo_arabico]]
.Sistema de numeração Indo-Arábico
.Sistema de numeração Indo-Arábico
image::images/
sistema-de-numeracao
/sistema_arabico.
png
[scaledwidth="70%"]
image::images/
{cap}
/sistema_arabico.
eps
[scaledwidth="70%"]
Observe que, inicialmente, os hindus não utilizavam o zero. A criação de um
Observe que, inicialmente, os hindus não utilizavam o zero. A criação de um
símbolo para o *nada*, ou seja, o zero, foi uma das grandes invenções dos
símbolo para o *nada*, ou seja, o zero, foi uma das grandes invenções dos
...
@@ -409,7 +409,7 @@ divisão (que resulta em quociente 0) ocupe a posição de mais alta ordem.
...
@@ -409,7 +409,7 @@ divisão (que resulta em quociente 0) ocupe a posição de mais alta ordem.
- Conversão do número 19~10~ para a base 2:
- Conversão do número 19~10~ para a base 2:
image::images/
sistema-de-numeracao
/conversao-fazendo-divisao.
png
[scaledwidth="70%", width="50%"]
image::images/
{cap}
/conversao-fazendo-divisao.
eps
[scaledwidth="70%", width="50%"]
Logo temos:
Logo temos:
...
@@ -428,7 +428,7 @@ ____
...
@@ -428,7 +428,7 @@ ____
Conversão do número 278~10~ para a base 16:
Conversão do número 278~10~ para a base 16:
image::images/
sistema-de-numeracao
/278_16.
png
[scaledwidth="50%", width="50%"]
image::images/
{cap}
/278_16.
eps
[scaledwidth="50%", width="50%"]
Logo temos:
Logo temos:
...
@@ -465,7 +465,7 @@ NOTE: Soma-se as posições da direita para esquerda, tal como uma soma decimal.
...
@@ -465,7 +465,7 @@ NOTE: Soma-se as posições da direita para esquerda, tal como uma soma decimal.
Solução:
Solução:
image::images/
sistema-de-numeracao
/figura1.
png
[scaledwidth="40%"]
image::images/
{cap}
/figura1.
eps
[scaledwidth="40%"]
A tabuada da subtração aritmética binária:
A tabuada da subtração aritmética binária:
...
@@ -483,7 +483,7 @@ Por exemplo: 11100~2~ – 01010~2~ = ?
...
@@ -483,7 +483,7 @@ Por exemplo: 11100~2~ – 01010~2~ = ?
Solução:
Solução:
image::images/
sistema-de-numeracao
/figura2.
png
[scaledwidth="25%"]
image::images/
{cap}
/figura2.
eps
[scaledwidth="25%"]
NOTE: Não esqueça, subtrai-se as colunas da direita para a esquerda, tal como
NOTE: Não esqueça, subtrai-se as colunas da direita para a esquerda, tal como
uma subtração decimal.
uma subtração decimal.
...
@@ -523,7 +523,7 @@ Efetuar: 101~2~ x 110~2~
...
@@ -523,7 +523,7 @@ Efetuar: 101~2~ x 110~2~
Solução:
Solução:
image::images/
sistema-de-numeracao
/figura5.
png
[scaledwidth="40%"]
image::images/
{cap}
/figura5.
eps
[scaledwidth="40%"]
No entanto, a multiplicação em computadores é feita, também, por um
No entanto, a multiplicação em computadores é feita, também, por um
artifício: para multiplicar A por n somamos A com A (n-1) vezes.
artifício: para multiplicar A por n somamos A com A (n-1) vezes.
...
@@ -579,7 +579,7 @@ Como o próprio nome indica, a representação *sinal* e *amplitude* é dividida
...
@@ -579,7 +579,7 @@ Como o próprio nome indica, a representação *sinal* e *amplitude* é dividida
para representar o sinal, o bit mais à esquerda: *0* para indicar um valor
para representar o sinal, o bit mais à esquerda: *0* para indicar um valor
positivo, *1* para indicar um valor negativo. Já o resto dos bits representam seu valor absoluto.
positivo, *1* para indicar um valor negativo. Já o resto dos bits representam seu valor absoluto.
image::images/
sistema-de-numeracao
/sinal_magnitude.
png
[scaledwidth="40%", width="50%"]
image::images/
{cap}
/sinal_magnitude.
eps
[scaledwidth="40%", width="50%"]
==== Complemento de 1
==== Complemento de 1
...
@@ -680,7 +680,7 @@ Uma característica do sistema de complemento de dois é que tanto os números
...
@@ -680,7 +680,7 @@ Uma característica do sistema de complemento de dois é que tanto os números
com sinal quanto os números sem sinal podem ser somados pelo mesmo circuito.
com sinal quanto os números sem sinal podem ser somados pelo mesmo circuito.
Por exemplo, suponha que você deseja somar os números sem sinal 132~10~ e 14~10~.
Por exemplo, suponha que você deseja somar os números sem sinal 132~10~ e 14~10~.
image::images/
sistema-de-numeracao
/figura3.
png
[scaledwidth="60%"]
image::images/
{cap}
/figura3.
eps
[scaledwidth="60%"]
O microprocessador tem um circuito na ULA (Unidade Lógica e
O microprocessador tem um circuito na ULA (Unidade Lógica e
Aritmética) que pode somar números binários sem sinal, quando aparece o
Aritmética) que pode somar números binários sem sinal, quando aparece o
...
@@ -693,7 +693,7 @@ resposta é: não sabe. A ULA sempre soma como se as entradas fossem números
...
@@ -693,7 +693,7 @@ resposta é: não sabe. A ULA sempre soma como se as entradas fossem números
binários sem sinal. Sempre produzirá o resultado correto, mesmo se as
binários sem sinal. Sempre produzirá o resultado correto, mesmo se as
entradas forem números em complemento de dois.
entradas forem números em complemento de dois.
image::images/
sistema-de-numeracao
/figura4.
png
[scaledwidth="60%"]
image::images/
{cap}
/figura4.
eps
[scaledwidth="60%"]
Isto comprova um ponto muito importante. O somador na ULA sempre soma padrões
Isto comprova um ponto muito importante. O somador na ULA sempre soma padrões
de bits como se eles fossem números binários sem sinal. É a nossa
de bits como se eles fossem números binários sem sinal. É a nossa
...
@@ -720,7 +720,7 @@ Como exemplo temos a subtração de 69~10~ (Minuendo) por 26~10~ (Subtraendo).
...
@@ -720,7 +720,7 @@ Como exemplo temos a subtração de 69~10~ (Minuendo) por 26~10~ (Subtraendo).
Jogue fora o transporte final:
Jogue fora o transporte final:
image::images/
sistema-de-numeracao
/transporte-final.
png
[scaledwidth="100%"]
image::images/
{cap}
/transporte-final.
eps
[scaledwidth="100%"]
[NOTE]
[NOTE]
====
====
...
@@ -747,7 +747,7 @@ decrementada em 1 a cada casa afastada do ponto.
...
@@ -747,7 +747,7 @@ decrementada em 1 a cada casa afastada do ponto.
Exemplo:
Exemplo:
.Representação de ponto fixo
.Representação de ponto fixo
image::images/
sistema-de-numeracao
/ponto-fixo.
png
[]
image::images/
{cap}
/ponto-fixo.
eps
[]
==== Soma e subtração de números fracionários
==== Soma e subtração de números fracionários
...
@@ -757,7 +757,7 @@ subtração binária demonstrada anteriormente.
...
@@ -757,7 +757,7 @@ subtração binária demonstrada anteriormente.
Exemplos:
Exemplos:
image::images/
sistema-de-numeracao
/figura6.
png
[scaledwidth="50%"]
image::images/
{cap}
/figura6.
eps
[scaledwidth="50%"]
=== Fundamentos da Notação de Ponto Flutuante
=== Fundamentos da Notação de Ponto Flutuante
...
@@ -862,7 +862,7 @@ e o campo da mantissa, como mostrado na <<fig_sinal_expoente_mantissa>>.
...
@@ -862,7 +862,7 @@ e o campo da mantissa, como mostrado na <<fig_sinal_expoente_mantissa>>.
[[fig_sinal_expoente_mantissa]]
[[fig_sinal_expoente_mantissa]]
.Divisão de 1 byte nos campos da Notação de Ponto Flutuante
.Divisão de 1 byte nos campos da Notação de Ponto Flutuante
image::images/
sistema-de-numeracao
/sinal_expoente_mantissa.
png
[scaledwidth="60%"]
image::images/
{cap}
/sinal_expoente_mantissa.
eps
[scaledwidth="60%"]
...
@@ -927,7 +927,7 @@ os bits de sinal forem iguais a ‘0’, o maior dos dois valores é aquele que
...
@@ -927,7 +927,7 @@ os bits de sinal forem iguais a ‘0’, o maior dos dois valores é aquele que
apresentar, da esquerda para a direita, um ‘1’ no bit em que os padrões
apresentar, da esquerda para a direita, um ‘1’ no bit em que os padrões
diferem, logo ao comparar:
diferem, logo ao comparar:
image::images/
sistema-de-numeracao
/figura7.
png
[scaledwidth="40%"]
image::images/
{cap}
/figura7.
eps
[scaledwidth="40%"]
Conclui-se que o primeiro padrão é maior que o segundo, sem haver a
Conclui-se que o primeiro padrão é maior que o segundo, sem haver a
necessidade de decodificar as representações em Ponto Flutuante, tarefa que
necessidade de decodificar as representações em Ponto Flutuante, tarefa que
...
@@ -957,7 +957,7 @@ parcela: 0,125) se perde, como pode ser observado na figura abaixo:
...
@@ -957,7 +957,7 @@ parcela: 0,125) se perde, como pode ser observado na figura abaixo:
Logo temos:
Logo temos:
image::images/
sistema-de-numeracao
/bit_perdido.
png
[]
image::images/
{cap}
/bit_perdido.
eps
[]
Ao ignorarmos este problema, e continuarmos a preencher o campo do expoente e
Ao ignorarmos este problema, e continuarmos a preencher o campo do expoente e
do bit do sinal, teremos o padrão de bits 01101010, que representa o valor 2,5
do bit do sinal, teremos o padrão de bits 01101010, que representa o valor 2,5
...
@@ -1006,7 +1006,7 @@ Processo:
...
@@ -1006,7 +1006,7 @@ Processo:
Equalizando os expoentes, temos:
Equalizando os expoentes, temos:
image::images/
sistema-de-numeracao
/figura8.
png
[]
image::images/
{cap}
/figura8.
eps
[]
Normalizando:
Normalizando:
...
...
livro/images/cap3/278_16.eps
0 → 100644
View file @
a0f179e7
This diff is collapsed.
Click to expand it.
livro/images/cap3/bit_perdido.eps
0 → 100644
View file @
a0f179e7
This diff is collapsed.
Click to expand it.
livro/images/cap3/conversao-fazendo-divisao.eps
0 → 100644
View file @
a0f179e7
This diff is collapsed.
Click to expand it.
livro/images/cap3/dez_babilonico.eps
0 → 100644
View file @
a0f179e7
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: (ImageMagick)
%%Title: (dez_babilonico.eps)
%%CreationDate: (2014-10-31T09:33:07-03:00)
%%BoundingBox: -0 -0 24 23
%%HiResBoundingBox: 0 0 23.9967 23
%%DocumentData: Clean7Bit
%%LanguageLevel: 1
%%Pages: 1
%%EndComments
%%BeginDefaults
%%EndDefaults
%%BeginProlog
%
% Display a color image. The image is displayed in color on
% Postscript viewers or printers that support color, otherwise
% it is displayed as grayscale.
%
/DirectClassPacket
{
%
% Get a DirectClass packet.
%
% Parameters:
% red.
% green.
% blue.
% length: number of pixels minus one of this color (optional).
%
currentfile
color_packet
readhexstring
pop
pop
compression
0
eq
{
/number_pixels
3
def
}
{
currentfile
byte
readhexstring
pop
0
get
/number_pixels
exch
1
add
3
mul
def
}
ifelse
0
3
number_pixels
1
sub
{
pixels
exch
color_packet
putinterval
}
for
pixels
0
number_pixels
getinterval
}
bind
def
/DirectClassImage
{
%
% Display a DirectClass image.
%
systemdict
/colorimage
known
{
columns
rows
8
[
columns
0
0
rows
neg
0
rows
]
{
DirectClassPacket
}
false
3
colorimage
}
{
%
% No colorimage operator; convert to grayscale.
%
columns
rows
8
[
columns
0
0
rows
neg
0
rows
]
{
GrayDirectClassPacket
}
image
}
ifelse
}
bind
def
/GrayDirectClassPacket
{
%
% Get a DirectClass packet; convert to grayscale.
%
% Parameters:
% red
% green
% blue
% length: number of pixels minus one of this color (optional).
%
currentfile
color_packet
readhexstring
pop
pop
color_packet
0
get
0.299
mul
color_packet
1
get
0.587
mul
add
color_packet
2
get
0.114
mul
add
cvi
/gray_packet
exch
def
compression
0
eq
{
/number_pixels
1
def
}
{
currentfile
byte
readhexstring
pop
0
get
/number_pixels
exch
1
add
def
}
ifelse
0
1
number_pixels
1
sub
{
pixels
exch
gray_packet
put
}
for
pixels
0
number_pixels
getinterval
}
bind
def
/GrayPseudoClassPacket
{
%
% Get a PseudoClass packet; convert to grayscale.
%
% Parameters:
% index: index into the colormap.
% length: number of pixels minus one of this color (optional).
%
currentfile
byte
readhexstring
pop
0
get
/offset
exch
3
mul
def
/color_packet
colormap
offset
3
getinterval
def
color_packet
0
get
0.299
mul
color_packet
1
get
0.587
mul
add
color_packet
2
get
0.114
mul
add
cvi
/gray_packet
exch
def
compression
0
eq
{
/number_pixels
1
def
}
{
currentfile
byte
readhexstring
pop
0
get
/number_pixels
exch
1
add
def
}
ifelse
0
1
number_pixels
1
sub
{
pixels
exch
gray_packet
put
}
for
pixels
0
number_pixels
getinterval
}
bind
def
/PseudoClassPacket
{
%
% Get a PseudoClass packet.
%
% Parameters:
% index: index into the colormap.
% length: number of pixels minus one of this color (optional).
%
currentfile
byte
readhexstring
pop
0
get
/offset
exch
3
mul
def
/color_packet
colormap
offset
3
getinterval
def
compression
0
eq
{
/number_pixels
3
def
}
{
currentfile
byte
readhexstring
pop
0
get
/number_pixels
exch
1
add
3
mul
def
}
ifelse
0
3
number_pixels
1
sub
{
pixels
exch
color_packet
putinterval
}
for
pixels
0
number_pixels
getinterval
}
bind
def
/PseudoClassImage
{
%
% Display a PseudoClass image.
%
% Parameters:
% class: 0-PseudoClass or 1-Grayscale.
%
currentfile
buffer
readline
pop
token
pop
/class
exch
def
pop
class
0
gt
{
currentfile
buffer
readline
pop
token
pop
/depth
exch
def
pop
/grays
columns
8
add
depth
sub
depth
mul
8
idiv
string
def
columns
rows
depth
[
columns
0
0
rows
neg
0
rows
]
{
currentfile
grays
readhexstring
pop
}
image
}
{
%
% Parameters:
% colors: number of colors in the colormap.
% colormap: red, green, blue color packets.
%
currentfile
buffer
readline
pop
token
pop
/colors
exch
def
pop
/colors
colors
3
mul
def
/colormap
colors
string
def
currentfile
colormap
readhexstring
pop
pop
systemdict
/colorimage
known
{
columns
rows
8
[
columns
0
0
rows
neg
0
rows
]
{
PseudoClassPacket
}
false
3
colorimage
}
{
%
% No colorimage operator; convert to grayscale.
%
columns
rows
8
[
columns
0
0
rows
neg
0
rows
]
{
GrayPseudoClassPacket
}
image
}
ifelse
}
ifelse
}
bind
def
/DisplayImage
{
%
% Display a DirectClass or PseudoClass image.
%
% Parameters:
% x & y translation.
% x & y scale.
% label pointsize.
% image label.
% image columns & rows.
% class: 0-DirectClass or 1-PseudoClass.
% compression: 0-none or 1-RunlengthEncoded.
% hex color packets.
%
gsave
/buffer
512
string
def
/byte
1
string
def
/color_packet
3
string
def
/pixels
768
string
def
currentfile
buffer
readline
pop
token
pop
/x
exch
def
token
pop
/y
exch
def
pop
x
y
translate
currentfile
buffer
readline
pop
token
pop
/x
exch
def
token
pop
/y
exch
def
pop
currentfile
buffer
readline
pop
token
pop
/pointsize
exch
def
pop
/Times-Roman
findfont
pointsize
scalefont
setfont
x
y
scale
currentfile
buffer
readline
pop
token
pop
/columns
exch
def
token
pop
/rows
exch
def
pop
currentfile
buffer
readline
pop
token
pop
/class
exch
def
pop
currentfile
buffer
readline
pop
token
pop
/compression
exch
def
pop
class
0
gt
{
PseudoClassImage
}
{
DirectClassImage
}
ifelse
grestore
}
bind
def
%%EndProlog
%%Page: 1 1
%%PageBoundingBox: 0 0 24 23
userdict
begin
DisplayImage
0
0
23.9967
22.9968
12
24
23
1
1
1
8
FFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF6E7F6FFEDE2F2F2F6FFFFFFFFFFFFFFFFFFFFFFFF
FFFAF6F2FAF8E52C118AFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFAFDEDE7AA16000158FFF8
FFFDFFFFFDFFFFFFFFFFFFFFFFFDFFA80E07000063CEFAFDFFFFFDFDFDFAF6F8FDF6F4ED
FDFF6B0800000790FFFFFDF8FFFFFDFDFAF8F8F8F8F8F8F6E28E080000056FFFFDFFFDF8
FFFFFAF8FDFDFAFAF4F8E9FF730400000797F4FFFFFFFDFDFFFFFDFFFAEDF6FAFFFF631D
0800000382F4F6FAFAF8FAFDFFFFFAFAF8F4FDFD4A17030000000D80FFF2EFFDFDFAFDFF
FFFFF8FFFDFFD6420200000000002DFFFAE9F8FDFFFFFFFDFDFDFFF42814160200001E77
1B0023EFFDF8FDFFFDFFFFFFF8FFBC2D000000010013AAFF540022EFFDF8FDFFFFFFFFFF
F8FF6C0000010000014CFF930B0023EFFDF8FDFFFFFFFFFFFAFFB8332E2902000012490D
000024EFFDF8FDFFFFFFFFFDFDFDFDF2F4DC5D4503000000010024EDFDF8FAFFFFFDFDFF
FFFFFFFFFDFFFFFF54160300000029EFFAF4E9F6F8F4FAF8FFFFFFFFFFFFFFFDFFFF6324
260D084D69F8FDF8EFF8F6F6FFFFFFFFFFFFFFFFF6F2EDF8F6A40600056FF4EFF6FAF6FD
FFFFFFFFFFFFFFFFF6FAF8F8FDFDB119000252F8FDEDF8F2FFFFFFFFFFFFFFFFFAEDF4FA
F8FAFFFD50020983F2F4FAEDFFFFFFFFFFFFFFFFF8FDFFFAFDFAFDFFFFFF9A08A8FFF8F2
FFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFDFFFFFFA8E7FDF4EDFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFF8EBFAEBFA
end
%%PageTrailer
%%Trailer
%%EOF
livro/images/cap3/figura1.eps
0 → 100644
View file @
a0f179e7
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: cairo 1.13.1 (http://cairographics.org)
%%CreationDate: Fri Oct 31 09:40:37 2014
%%Pages: 1
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%BoundingBox: 0 -1 471 98
%%EndComments
%%BeginProlog
save
50
dict
begin
/q
{
gsave
}
bind
def
/Q
{
grestore
}
bind
def
/cm
{
6
array
astore
concat
}
bind
def
/w
{
setlinewidth
}
bind
def
/J
{
setlinecap
}
bind
def
/j
{
setlinejoin
}
bind
def
/M
{
setmiterlimit
}
bind
def
/d
{
setdash
}
bind
def
/m
{
moveto
}
bind
def
/l
{
lineto
}
bind
def
/c
{
curveto
}
bind
def
/h
{
closepath
}
bind
def
/re
{
exch
dup
neg
3
1
roll
5
3
roll
moveto
0
rlineto
0
exch
rlineto
0
rlineto
closepath
}
bind
def
/S
{
stroke
}
bind
def
/f
{
fill
}
bind
def
/f*
{
eofill
}
bind
def
/n
{
newpath
}
bind
def
/W
{
clip
}
bind
def
/W*
{
eoclip
}
bind
def
/BT
{
}
bind
def
/ET
{
}
bind
def
/pdfmark
where
{
pop
globaldict
/?pdfmark
/exec
load
put
}
{
globaldict
begin
/?pdfmark
/pop
load
def
/pdfmark
/cleartomark
load
def
end
}
ifelse
/BDC
{
mark
3
1
roll
/BDC
pdfmark
}
bind
def
/EMC
{
mark
/EMC
pdfmark
}
bind
def
/cairo_store_point
{
/cairo_point_y
exch
def
/cairo_point_x
exch
def
}
def
/Tj
{
show
currentpoint
cairo_store_point
}
bind
def
/TJ
{
{
dup
type
/stringtype
eq
{
show
}
{
-0.001
mul
0
cairo_font_matrix
dtransform
rmoveto
}
ifelse
}
forall
currentpoint
cairo_store_point
}
bind
def
/cairo_selectfont
{
cairo_font_matrix
aload
pop
pop
pop
0
0
6
array
astore
cairo_font
exch
selectfont
cairo_point_x
cairo_point_y
moveto
}
bind
def
/Tf
{
pop
/cairo_font
exch
def
/cairo_font_matrix
where
{
pop
cairo_selectfont
}
if
}
bind
def
/Td
{
matrix
translate
cairo_font_matrix
matrix
concatmatrix
dup
/cairo_font_matrix
exch
def
dup
4
get
exch
5
get
cairo_store_point
/cairo_font
where
{
pop
cairo_selectfont
}
if
}
bind
def
/Tm
{
2
copy
8
2
roll
6
array
astore
/cairo_font_matrix
exch
def
cairo_store_point
/cairo_font
where
{
pop
cairo_selectfont
}
if
}
bind
def
/g
{
setgray
}
bind
def
/rg
{
setrgbcolor
}
bind
def